Unity生命脚本周期

生命周期函数的概念

所有继承MonoBehavior的脚本,最终都会挂在到GameObject游戏对象上

生命周期函数,就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中

会通过反射自动调用一些特殊函数

Unity帮助我们记录了一个GameObject对象依附了哪些脚本

会自动的得到这些对象,通过反射去执行一些固定名字的函数

生命周期函数

在这里插入图片描述

生命周期函数的访问修饰符一般为private和protected,因为不需要外部再调用生命周期的函数 都是Unity自己帮助我们调用的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson01 : MonoBehaviour
{
    // 当对象(自己这个类的对象)被创建时才会调用该生命周期函数
    private void Awake()
    {
        // 在Unity中打印信息的两种方式
        // 1.没有继承MonoBehavior类的时候 (假设没有继承的话,为了挂载这里只能继承)
        Debug.Log("123");
        //Debug.LogError("出错了");
        //Debug.LogWarning("警告!!");

        // 2.继承了MonoBehavior的时候 有一个现成的方法可以使用
        print("1234567");
    }

    // 对于我们来说 想要当一个对象被激活时 进行一些逻辑处理,就可以使用这个函数
    private void OnEnable()
    {
        print("已激活!");
    }

    private void Start()
    {
        print("start");
    }

    // 该函数主要是用于 进行物理更新
    // 它是每一帧 执行的 但是这里的帧 和游戏帧有些不同
    // 它的时间间隔 是可以在project setting中的Time中设置的
    private void FixedUpdate()
    {
        print("FixedUpdate");
    }

    // 主要用于处理游戏核心逻辑更新的一个函数
    private void Update()
    {
        print("Update");
    }

    // 一般这个函数适用于处理摄像机更新相关内容的
    // Update和LateUpdate之间 Unity进了一些处理 处理我们动画相关的更新
    private void LateUpdate()
    {
        print("LateUpdate");
    }

    // 如果我们希望在一个对象被禁用时做一些处理,就可以在该函数中写逻辑
    private void OnDisable()
    {
        print("OnDisable"); 
    }

    private void OnDestroy()
    {
        print("OnDestroy");
    }
}

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

下面代码虽然没有继承MonoBehaviour,依然能够挂载到物体上面,因为他的父类是MonoBehaviour的子类,这也体现了多态的重要性。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson01Son : Lesson01
{
    protected override void Awake()
    {
        base.Awake();
        print("子类的Awake");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunyou1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值