通常情况下我们会用复合语句 _instance ?? (_instance = new ClassName()); 来初始化一个实例,
一般情况下对于变量和类来说是可以的,但是如果想要判断一个GameObject是否定义,用??复合语句是无效的
例如如下语句实际上是无法正确检测是否为null的
m_ShowHint = m_ShowHint ?? (m_ShowHint = newObject());
正确写法为:
if (m_ShowHint == null) m_ShowHint = newObject();
直接判断null即可
或者稳妥起见可以把null换成default(类型),这是系统初值的正确写法,肯定不会出错