【Unity入门】MonoBehaviour事件函数

    大家好,我是Lampard~~

    欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢

unity 的Mathf函数_unity

(一)常用的事件函数

(1)start和update方法

    之前我们写的脚本,会默认帮助我们继承于MonoBehaviour类,MonoBehaviour是unity的一个基类,类似于cocos的object

MonoBehaviour是Unity引擎中的一个基类,用于编写游戏对象的脚本,开发者可以通过继承MonoBehaviour类并实现其中的方法来实现游戏对象的交互行为和游戏机制

start是脚本初始化时候会被调用一次,update会每帧进行调用,而游戏的帧率我们可以通过Application.targetFrameRate来进行设置

unity 的Mathf函数_游戏引擎_02

    这两个方法我们很熟悉,下面会介绍其他三种常见的事件函数

(2)awake方法

    Awake方法是MonoBehaviour类中的一个回调方法,在游戏对象被创建时调用,用于初始化游戏对象的属性和状态,在Start方法之前执行

Awake方法的作用一般是进行游戏对象的初始设置,例如获取其他组件的引用、初始化变量、设置默认参数等。在Awake方法中进行这些初始化设置可以保证在Start方法之前完成,从而避免在Start方法中出现未初始化的情况

Awake在Start之前调用,且哪怕物体是禁用状态,Awake也会执行

unity 的Mathf函数_游戏引擎_03

把代码设置禁用状态,设置如下代码

void Awake()
    {
        Debug.Log("正在执行Awake方法");
    }

    void Start()
    {
        Debug.Log("正在执行Start方法");
    }

    看看执行结果:

unity 的Mathf函数_事件函数_04

出现Awake先比sStart执行的结果

unity 的Mathf函数_unity_05

(3)onEnable方法和onDisable方法

    onEnable和onDisable方法会分别在脚本启用和禁用的时候调用

    需要注意的是,onEnable方法和onDisable方法在游戏对象的生命周期中可能会多次被调用,因此在实现时需要注意避免重复注册和清理等情况

unity 的Mathf函数_unity_06

     举个栗子,我们加上以下代码:

private void Awake()
    {
        Debug.Log("正在执行Awake方法");
    }

    private void onEnable()
    {
        Debug.Log("正在执行onEnable方法");
    }

    private void onDisable()
    {
        Debug.Log("正在执行onDisable方法");
    }

    void Start()
    {
        Debug.Log("正在执行Start方法");
    }

    看看结果,只要物体被调用/禁用的时候代码就会执行:

unity 的Mathf函数_unity 的Mathf函数_07

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

unity 的Mathf函数_unity 的Mathf函数_08