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

 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 的生命周期。