概念:移动有超大层级结构的 Transform 对象会造成很大的 CPU 消耗,但在现实的环境中,通常不可能将对象结构精简到最少的 GameObjects,如果可以最好在玩家不发现的前提下,删除玩家看不到的行为。例如,在有大量角色的场景时,只针对屏幕可见范围内的角色计算网格蒙皮(Mesh-skinning)和处理角色动作等等。不需要浪费CPU的资源在计算屏幕外看不到的角色行为。与其直接操作场景中一大群的 GameObject,而是改变系统操作 CullingGroup 里的一组 BoundingSpheres 的Vector3 参数。每个 BoundingSphere 作为这些 GameObject 在游戏世界中的代表,当 CullingGroup 接近或进入CullingGroup 设定的主镜头的锥体范围内时成员才会收到 callback。然后这些 callback 就可以用来执行启用/停用的程序代码或组件(例如Animators)让物体执行在可见范围内该有的行为。
触发事件:相机裁剪,相对距离(相机或主主角相对于目标物体的距离)
应用场景:1. 粒子当前不可见时,将其暂停,ai不在视野内时停止更新,在Animator的情况下(组件有类似的功能设置),如果Animator剔除模式Culling Mode设置为剔除更新变换Cull Update Transform等,则在超出相机范围时将跳过动画。
2. 粒子与相机或主角在不同距离阶段时,使用不同的简化版粒子。功能上接近LOD。它可能更容易使用,因为它比标准LOD更容易调整。