概念:移動(dòng)有超大層級(jí)結(jié)構(gòu)的 Transform 對(duì)象會(huì)造成很大的 CPU 消耗,但在現(xiàn)實(shí)的環(huán)境中,通常不可能將對(duì)象結(jié)構(gòu)精簡(jiǎn)到最少的 GameObjects,如果可以最好在玩家不發(fā)現(xiàn)的前提下,刪除玩家看不到的行為。例如,在有大量角色的場(chǎng)景時(shí),只針對(duì)屏幕可見(jiàn)范圍內(nèi)的角色計(jì)算網(wǎng)格蒙皮(Mesh-skinning)和處理角色動(dòng)作等等。不需要浪費(fèi)CPU的資源在計(jì)算屏幕外看不到的角色行為。與其直接操作場(chǎng)景中一大群的 GameObject,而是改變系統(tǒng)操作 CullingGroup 里的一組 BoundingSpheres 的Vector3 參數(shù)。每個(gè) BoundingSphere 作為這些 GameObject 在游戲世界中的代表,當(dāng) CullingGroup 接近或進(jìn)入CullingGroup 設(shè)定的主鏡頭的錐體范圍內(nèi)時(shí)成員才會(huì)收到 callback。然后這些 callback 就可以用來(lái)執(zhí)行啟用/停用的程序代碼或組件(例如Animators)讓物體執(zhí)行在可見(jiàn)范圍內(nèi)該有的行為。
觸發(fā)事件:相機(jī)裁剪,相對(duì)距離(相機(jī)或主主角相對(duì)于目標(biāo)物體的距離)
應(yīng)用場(chǎng)景:1. 粒子當(dāng)前不可見(jiàn)時(shí),將其暫停,ai不在視野內(nèi)時(shí)停止更新,在Animator的情況下(組件有類(lèi)似的功能設(shè)置),如果Animator剔除模式Culling Mode設(shè)置為剔除更新變換Cull Update Transform等,則在超出相機(jī)范圍時(shí)將跳過(guò)動(dòng)畫(huà)。?
2. 粒子與相機(jī)或主角在不同距離階段時(shí),使用不同的簡(jiǎn)化版粒子。功能上接近LOD。它可能更容易使用,因?yàn)樗葮?biāo)準(zhǔn)LOD更容易調(diào)整。