1.使用的时候需要把遮挡物和被遮挡物设置 Occluder Static 或者 Occludee Static。
2.在Window->Rendering中选择Oclusion Culling,打开遮挡剔除面板,然后烘焙。
3.烘焙后会在场景对应的文件夹下生成一个场景文件OcclusionCullingData,并会在场景中自动生成一个遮挡剔除区域。
4.查看效果的话需要在inspector的右边的occlusion面板打开Visualzation选项,在Scene中会有一个Occlusion Culling的界面,然后尝试移动摄像机看效果,当摄像机移动到遮挡剔除的区域内时,被剔除的物体在遮挡剔除区域内不显示。
Occlusion Culling 界面:
摄像机在区域外时物体显示:
摄像机在区域内时物体不显示(黄色线框内就是遮挡剔除的区域):
5.如果需要限定区域,可以添加一个Occlusion area,拖拽范围后重新烘焙,会发现黄色的遮挡剔除区域变了(界面中绿色的区域就是Occlusion area的范围) 。
1.场景中的添加一个Sphere, 在Mesh Renderer中勾选Dynamic Occlusion。
2.尝试在相机已经在遮挡剔除范围内的时候移动小球,看效果,小球被遮挡的时候就不会显示。
Sphere在遮挡剔除范围外:
Sphere在遮挡剔除范围内:
1.在场景中创建一个节点,挂载Occlusion Portal组件,放在被遮挡物前面,烘焙场景。(绿色节点就是Occlusion Portal组件)
2.相机放在遮挡入口前面,勾选和取消勾选组件的open选项,看遮挡效果,如果是open不会遮挡,否则遮挡后面的物体。
open:
close:
3.使用一些需要动态修改是否遮挡的地方,比如门之类的。
遮挡剔除文件遮挡剔除烘焙后,会在对应场景的文件下创建一个遮挡剔除文件,在运行时,无论打开了多少个场景,Unity 一次仅加载一个遮挡剔除数据资源。因此,必须根据计划是一次加载一个场景还是一次加载多个场景,从而以不同方式准备遮挡剔除数据。
1.单场景加载的话,就按照正常流程,每个场景单独烘焙。
2.多场景的话,需要在烘焙前把其余场景一起在累加在当前场景之后烘焙。



