Unity知识二:显示和隐藏游戏对象
Posted 博士装呗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity知识二:显示和隐藏游戏对象相关的知识,希望对你有一定的参考价值。
游戏中界面需要来回切换,一种方法是把它们都显示出来,用到某个游戏对象的时候让它的位置发生变化,是我们能看到;另一种方法就是游戏对象都放在这里,只是有些显示,而有些要隐藏。当我需要某些物体显示的时候它再显示,同时也可以把不必要的游戏物体给隐藏起来。
隐藏游戏物体用SetActive()方法。
比如:
GameObject gameLoginBackground;
// Use this for initialization
void Start ()
gameLoginBackground = GameObject.Find("LoginBackground");
gameLoginBackground.SetActive(false);
这样,游戏物体LoginBackground就被隐藏掉了。
注意:(这里有一个很重要的点)
我们说可以SetActive()方法将一个显示的游戏对象设置成隐藏的,但是一个本来就隐藏的游戏对象是无法设置成显示的!
什么意思?来看一张图片:
我们可能会想,我在这个Inspector面板中把它的对号给去掉,它的SetActive()方法的值就是false,等到我想让它显示了,我再设置SetActive()方法的值为true,这样就好了。
不行的亲~
这个对号和SetActive()方法一点关系都没有,你把这个对号去掉了,那这个游戏物体就是不能用的,它都不能用,还怎么去调用它的SetActive()方法?那只能找不到而报错:“object reference not set to an instance of an object”,意思是未将对象引用到对象的实例,说简单点就是这个东西找不到。
所以一个本来就隐藏(现在说不可用更合适)的游戏物体是不能通过SetActive()方法设置显示与隐藏的。
那么我们怎么做呢?
不管怎样,这个游戏物体是存在的,所以只要是游戏中物体,我们都要保证它的对号是勾选上的,然后进行隐藏和显示。
//首先声明一个对象
GameObject gameBackground;
//找到游戏对象
gameBackground = GameObject.FindGameObjectWithTag ("GameBackground");
//先设置它的可用为false,就看不见它了
gameBackground.SetActive (false);
XXOO
//经过一系列的XXOO后设置它的可用为true,就可以看见它了
gameBackground.SetActive(true);
注意事项二:
当一个游戏物体的对象的SetActive()设置为false时,那么该游戏物体的Destroy()方法就不能再使用了,原因跟上面类似。所以用不到的话直接Destroy掉吧。
以上是关于Unity知识二:显示和隐藏游戏对象的主要内容,如果未能解决你的问题,请参考以下文章