假设现有Layer为:
Default = 0,TransparentFX = 1,Ignore Raycase = 2,Water = 4,MyLayer = 8.
设置相机Camera的Culling Mask为:Default+TransparentFX+Ignore Raycase+Water.
那么当设置物体的Layer为MyLayer时候,物体的Layer层在当前相机被忽略,也就相当于隐藏。具体代码为:
[code]csharpcode:
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
void OnGUI () {
if(GUILayout.Button("Display")){
gameObject.layer = LayerMask.NameToLayer("Default");
}
if(GUILayout.Button("Hide")){
gameObject.layer = LayerMask.NameToLayer("MyLayer");
}
}
}
<span style="margin: 0px; padding: 0px; border: 0px; background-color: transparent;"> </span>void Start () {
foreach(Transform tran in GetComponentsInChildren<Transform>()){//遍历当前物体及其所有子物体
tran.gameObject.layer = 30;//更改物体的Layer层
}
}
当需要隐藏一部分物体时,可以使用Layer过滤。
在Camera中设置Culling Mask选择要观察的Layer