在看Unity官方Demo《space shooter》时,一个没有继承MonoBehaviour的类Done_Boundary :
[System.Serializable]
public class Done_Boundary
{
public float xMin, xMax, zMin, zMax;
}
Serializable是.Net自带的序列化
有时候我们会自定义一些单独的class/struct, 由于这些类并没有从 MonoBehavior 派生所以默认并不被Unity3D识别为可以Serialize的结构。自然也就不会在Inspector中显示。我们可以通过添加 [System.Serializable]这个Attribute使Unity3D检测并注册这些类为可Serialize的类型。具体做法如下:
[System.Serializable]
public class FooBar {
public int foo = 5;
public int bar = 10;
}
注意:Serializable只可以对class,struct,enum,delegate进行序列化,不可以对属性序列化
具体的SerializeField和Serializable,赵青青大神有具体说明
https://www.cnblogs.com/zhaoqingqing/p/3995304.html
他对ScriptableObject的序列化还进行了举例说明,讲的特别好。