构造函数为Avatar Class返回null

时间:2015-02-19 11:58:23

标签: c# unity3d mono

我认为C#中的类构造函数不应该返回null。但是Unity3D中Avatar类的构造函数返回null。 您不必使用Unity3D来构思。我问它不是在语言的定义中是如何可能的。即使它有可能成为Unity引擎中的错误,这样的错误是否可能?

如果您使用Unity,则可以使用以下代码进行测试:

 [ExecuteInEditMode]
 public class Test : MonoBehaviour {
     void Update(){
         Avatar avatar = new Avatar();
         if(avatar == null) Debug.Log("Constructor really returns null.");
     }
 }

很少有事情需要注意: - 头像类继承自UnityEngine.Object - 继承自UnityEngine.Object的其他类没有这个问题 - Unity使用Mono框架的自定义版本。

1 个答案:

答案 0 :(得分:2)

问题是,==运算符过载并且可能检查与实际对象不同的东西。对于从UnityEngine.Object继承的任何类,您不应通过new实例化该类。你必须使用UnityEngine.Object.CreateInstance