[System.Serializable]
该关键字可以将自定义class 显示在inspector 面板上面序列化,
Unity序列化我是这样理解的:相当于new 和 初始化 而不必手动去new 一个class 对象,此外还可以用于磁盘读写 网络传输,
如
using UnityEngine; using System.Collections; //[System.Serializable] public class PlayerData { public int hp; public int speed; } public class NewBehaviourScript : MonoBehaviour { public PlayerData playerdata; // Use this for initialization void Start () { } // Update is called once per frame void Update () { Debug.Log(playerdata.hp); } }
这样的话那你就必须手动new playerdata 这个实例化对象。
注意 申明并不是实例化了一个对象,相当于指针,所以在class PlayerData 加上 可序列化,并且可以在inspector面板 的脚本组件里面 编辑了
从c++的角度也很好理解序列化,对象 也就是内存片段内存片段保存下来了,那么这个对象也被保存下来了