关于使用??初始化GameObject实例却并没有生效的技巧性问题

来源:互联网 发布:单片机小制作 编辑:程序博客网 时间:2024/06/05 14:59

通常情况下我们会用复合语句    _instance ?? (_instance = new ClassName()); 来初始化一个实例,

一般情况下对于变量和类来说是可以的,但是如果想要判断一个GameObject是否定义,用??复合语句是无效的

例如如下语句实际上是无法正确检测是否为null的

m_ShowHint = m_ShowHint ?? (m_ShowHint = newObject());


正确写法为:

if (m_ShowHint == null) m_ShowHint = newObject();


直接判断null即可


或者稳妥起见可以把null换成default(类型),这是系统初值的正确写法,肯定不会出错

阅读全文
0 0