Unity学习笔记:控制UI的显示与隐藏(GameObject.Find找不到还报错?)
做项目需要实现一个UI的显示与隐藏功能。
我一开始的代码很简单很天真地这么写的。
然后,发现他点击按钮确实是隐藏了PrimePlane,但是,我要的StuPanel没有出来,并且报了一个奇怪的错误。
之前类似的错误学长告诉我是脚本挂少了之类的,但是这次我是把项目单独提溜出来做的,整个工程文件里面就只有我写的这一个脚本,所以肯定不是这个问题。
百度得到的第一个回答,但我感觉我不是这个问题,原因同上,我只有这一个脚本,不会是类之间的纠葛问题。
之后继续百度,得到了这个答案,真是太懂我了,完美解决了我的问题。
https://blog.csdn.net/jwxkk/article/details/52103789
我本来就是写在Start里面隐藏的,所以应该就是改成在函数外面定义GameObject就好了。
如图所示,下面这样就是正确的:
打勾的地方有个小小的雷点,就是不能之间在private GameObject PrimePanel之后就写上= GameObject.Find(“PrimePanel”);必须单独写
如此就可以快快乐乐地为所欲为为所欲为为所欲为为所欲为啦~
因为我自己的需要我设置了private,不想外部看见这个接口,但是鉴于原博主答案写的public,我也写了一个public的,事实证明都可以正常运行。
一些寻找答案过程中收集的资源:
https://blog.csdn.net/weixin_38745092/article/details/80272169
https://www.pianshen.com/article/9662884054/
(这两个网址内容是一样的,就当多存一个备份了)
详细内容请访问原作者网页,在此仅作整理学习用,侵删
关于GameObject.Find的一些内容:
https://blog.csdn.net/gongfu_li/article/details/48317883
这个博主也写的很全面很细致!强烈推荐~
原来如此,我的需求就是StuPanel先隐藏,点击按钮再显示,怪不得找不到~
以及一开始没解决向学长请教时,学长建议我搜索的transform.find: