Unity学习笔记:控制UI的显示与隐藏(GameObject.Find找不到还报错?)

本文记录了解决Unity中使用GameObject.Find显示与隐藏UI组件时遇到的问题,重点在于理解为何初始脚本错误及如何正确设置GameObject引用。通过实例说明了将变量定义在函数外以避免脚本挂载问题,以及使用private与public的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值