隐藏物体有两种方法,一是设置Meshrender为False,即不渲染物体。
二是设置物体为False,禁用物体,我使用的第二种。
当场景中需要隐藏的物体很多时,我们可以添加一个层来表示需要隐藏的物体。
当加载场景时,遍历隐藏的层内物体添加到List集合中,设置SetActive为False.当需要显示物体时,遍历LIst集合,把需要显示的设置为true。
注意不能在一开始就设置物体为False,否则运行时GameObject.Find会找不到该物体,就无法设置为True。
首先创建集合(引入System.Collections.Generic命名空间)。
List<GameObject> lstTools = new List<GameObject>();//场景中的隐藏工具的集合
void HitdToolsList()//隐藏工具
{
GameObject[] ToolsList = GameObject.FindGameObjectsWithTag("Tools");
foreach (GameObject tool in ToolsList)
{
lstTools.Add(tool);
tool.SetActive(false);
}
}
显示工具同理,foreach寻找需要显示工具的名称相符的工具即可。设置SetActive(true)。