图
官方的图: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
。