定义一个public变量时赋值
public a=1;
分别在Awake,start和面板中给它赋值,可以看出,a的赋值顺序为首先定义时赋的值1,.然后替换为面板中的值,再替换为Awake中的值,再替换为Start中的值。
这里可以用到
[HideInInspector]
和
[SerializeField]
[HideInInspector]将显示在面板上的序列化值隐藏。
[SerializeField]将不会被序列化的私有变量和保护变量可以序列化,在下次读取时,为上次赋值的值。
以下分不同情况使用:
1 如果a是公有的序列化变量,不在面板中看到a
[HideInInspector]
public int a; // 这样a可以在程序中被代码赋值,但不会在面板中看到。
2 如果a是私有的序列化变量,在面板中读取并保存
[SerializeField]
private int a;
3 如果a是私有的序列化变量,在面板中读取,但是不保存
[HideInInspector]
[SerializedField]
private int a;
public int b;{get{return a;}}
4 如果a是私有序列化变量,不在面板中做任何操作,但是在程序中赋值
[HideInInspector]
[SerializedField]
private int a;
public int b; {get{return a;}set{a=value;}}