以前一直没有注意过关于在Unity中C#对象初始化的问题,今天遇到了一个问题一定要记录一下。
通常我们写一个MonoBehavior,你只需要声明一个Unity的组件而不需要立刻实例化,你就可以在函数中使用它。如下,不会出错,如果你只是把他拖到场景中使用而不是用脚本new它。
public class EntityTest : MonoBehaviour
{
public AnimationCurve _Curve;
void Start()
{
_Curve = new AnimationCurve();
Add();
}
public void Add()
{
_Curve.AddKey (1.0f, 1.0f);
}
}
但是如果你这样写,就会出错。这其实好理解,因为new新对象的时候没有写构造函数,初始化之后,_UnityCurve._Cureve 是null,可以理解。
[Serializable]
public class UnityCurve
{
public

本文揭示了Unity中如何在声明带有Unity组件且可序列化的类时,Unity自动初始化对象的奇特现象。重点在于Serializable标签的作用和何时会导致错误。
最低0.47元/天 解锁文章
2095

被折叠的 条评论
为什么被折叠?



