[Unity] Unity3D的全局变量的测试

查看:974 |回复:12 | 2017-6-29 22:22:47

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 大西几 于 2021-2-23 20:09 编辑

使用Unity开发的朋友可能会遇到这样一个问题,那就是我在脚本中定义了一个公共全局变量并且赋值,但是运行后发现这个变量并不是这个值,这里就给大家解释一下原因。
代码如下:




  • public class Test : MonoBehaviour {
  •     public int a = 10;
  •     void Awake()
  •     {
  •         a = 20;
  •     }
  •     void Start () {
  •         a = 30;
  •     }
  • }

由于是public类型,所以变量a会在Unity面板中显示出来,如下图:
SouthEast.jpg



那么这个变量a的赋值顺序是怎样的呢?
1.首先a的值是定义时赋的值10。
2.然后a的值被Unity面板中的15替换。
3.然后a的值被Awake中的20替换。
4.然后a的值被Start中的30替换。

看到这个结果相信大家都知道原因了,要初始化的公共变量最好放到start中,而不要相信定义时的效果。当然你也可以使用[HideInInspector]让变量不显示在Unity面板中。
image.png

评分

参与人数 4元素币 +30 活跃度 +8 展开 理由
幺九 -1 【封面】或展示不规范,请尽快补充,否则会被移出资源区!
大芸彩 + 9 阅贴无数,楼主最强!
狼之独步 + 10 阅贴无数,楼主最强!
元素界王神 + 20

查看全部评分

2017-6-29 22:22:47  
 赞 赞 0

使用道具 登录

12个回答,把该问题分享到群,邀请大神一起回答。
2#
楼主总结得不错。
回复 收起回复
2017-6-30 09:35:12   回复
 赞 赞 0

使用道具 登录

3#
666,这波总结可以
回复 收起回复
2017-6-30 10:02:28   回复
 赞 赞 0

使用道具 登录

4#
很好的尝试
回复 收起回复
2017-6-30 10:33:04   回复
 赞 赞 0

使用道具 登录

5#
正是本尊想要的!
回复 收起回复
2017-7-5 19:11:01   回复
 赞 赞 0

使用道具 登录

6#
不错的东西,谢谢楼主的分享
回复 收起回复
2017-7-13 10:29:03   回复
 赞 赞 0

使用道具 登录

7#
感谢楼主分享
回复 收起回复
2019-3-1 13:33:32   回复
 赞 赞 0

使用道具 登录

8#
感谢楼主分享
回复 收起回复
2019-3-1 13:33:34   回复
 赞 赞 0

使用道具 登录

9#
不错
回复 收起回复
2019-3-5 10:18:46   回复
 赞 赞 0

使用道具 登录

10#
很好很强大
回复 收起回复
2019-3-5 16:43:29   回复
 赞 赞 0

使用道具 登录

11#
路过看看 感谢分享
回复 收起回复
2019-3-5 21:11:42   回复
 赞 赞 0

使用道具 登录

12#
路过看看 感谢分享
回复 收起回复
2019-3-5 21:11:43   回复
 赞 赞 0

使用道具 登录

13#
很有学习价值感谢.
回复 收起回复
2019-3-17 17:20:18   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表