写一段小代码来实测变量的初始化顺序。

 public int _int;


    void Awake()
    {

        print(_int);

        _int = 2;

        print(_int);


    }


	// Use this for initialization
	void Start ()
    {
        print(_int);

        _int = 3;
        print(_int);

	}

测试结果:_int 变量在 Inspector 面板中的赋值,发生在 Awake 之前,也就是说 Inspector 的初始化早于 Awake

整体顺序为:定义时赋值 > 构造器 > Inspector > Awake > Start。

另外要特别注意,千万不要在构造器里写代码。因为没法确定构造器什么时候被调用,测试中甚至出现过构造器被调用两次的情况,所以请严格遵循 MonoBehaviour 的生命周期。