图
官方的图:https://docs.unity.cn/cn/2019.4/Manual/ExecutionOrder.html
忽略点
父类和子类有相同的生命周期
问题描述:
当父类和子类都写了Awake
,会执行子类的Awake
,而不会执行父类的Awake
using UnityEngine;public class ScriptParent : MonoBehaviour
{private void Awake(){Debug.Log("Parent_Awake");}
}
using UnityEngine;public class ScriptChild : ScriptParent
{private void Awake(){ Debug.Log("___ScriptChild_Awake");}
}
解决办法:
将父类的生命周期函数 使用virtual
修饰, 在子类的相同生命周期中 用override
重写,并添加base.XXXX();
调用父类的XXXXX
。