生命周期函数

生命周期函数

生命周期函数就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中会通过反射自动调用的一些特殊函数

生命周期函数的访问修饰符一般为private和protected

public class LifePeriod : MonoBehaviour
{
    //当对象(自己这个类对象,而并非挂载GameObject)被创建时才会调用该生命周期函数,一个类对象只会执行一次
    //类似构造函数的存在,可以在类对象创建时进行一些初始化操作
    private void Awake()
    {
        //在unity中打印信息的两种方式
        //没有继承MonoBehavior类的时候
        Debug.Log("Test");
        //Debug.LogError("Error");
        //Debug.LogWarning("Warning");
        //继承了MonoBehavior有一个线程方法可用
        print("TestTest");
    }
    //依附的GameObject每次激活的时候调用
    //当一个对象被激活时进行一些逻辑处理
    private void OnEnable()
    {
        print("OnEnable");
    }
    //对象被创建出来后,第一次帧更新之前调用,一个对象只会调用一次,主要用于初始化,但是比Awake晚一点执行
    void Start()
    {
        print("Start");
    }
    //主要用于进行物理更新,每一帧执行,但是和游戏帧不同,固定间隔时间执行
    //间隔时间可以在Edit-Project Settings-Time中修改
    private void FixedUpdate()
    {
        print("FixedUpdate");
    }
    //逻辑帧更新,每帧执行,处理游戏核心逻辑更新的函数
    void Update()
    {
        print("Update");
    }
    //每帧执行,晚于Update之后执行
    //一般用来处理摄像机位置相关更新
    //Update和LateUpdate之间Unity进行了一些动画的处理
    private void LateUpdate()
    {
        print("LateUpdate");
    }
    //依附的GameObject每次失活时调用
    private void OnDisable()
    {
        print("OnDisable");
    }
    //对象销毁时调用,当依附的GameObject对象被删除时调用,只会调用一次
    private void OnDestroy()
    {
        print("OnDestroy");
    }
}

生命周期函数支持继承多态

posted @ 2025-03-15 11:02  cannedmint  阅读(35)  评论(0)    收藏  举报