Unity控制物体显示和隐藏
今天碰到一个比较特殊的问题,刚开始一直没解决网上找了很多博客也没找到答案,后来在QQ群友的帮助下得以解决,借此机会正好来总结 一下。在开发过程中常常需要对物体进行隐藏和显示操作,包括对UI和物体的控制,以下的实验均为UGUI的前提下。
思路提示
其实整体的思路无非就是两种,
一种是直接暴力的将这个物体设置为未激活状态,这样上边的脚本也就不能运行了,如果想再次激活则需要其他物体来进行控制恢复
另一种思路是设置到看不见的状态,这里设置看不见的状态,又可以设置物体的Render组件或者是设置UI的透明度,如果是由Shader里边控制的,可以更改Shader的的透明度属性,Shader需要开启透明度测试。这种方式相当于是隐身,不会影响物体挂载的脚本运行。
通用的显示和隐藏
设置物体的激活状态
关键要点
void Show()
{
gameObject.SetActive(true);
}
void Hide()
{
gameObject.SetActive(false);
}
如果存在子物体需要一起控制,需要使用SetActiveRecursively(false)