记录Unity对象初始化的一个坑

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

以前一直没有注意过关于在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值