📜  unity 回调 - C# (1)

📅  最后修改于: 2023-12-03 14:48:12.479000             🧑  作者: Mango

Unity 回调 - C#

Unity 中的回调是指在程序执行过程中,Unity 引擎告知脚本某个事件已经发生,并调用脚本中指定的函数。回调函数往往是由 Unity 引擎调用的,而不是由开发者直接调用的函数。

C# 是 Unity 中常用的编程语言之一,其语法清晰简单,易于学习和使用。在 Unity 中,我们可以为 C# 脚本添加回调函数,实现游戏逻辑的处理。

常见的回调函数

Unity 中常见的回调函数包括:

  • Awake():在对象创建后,第一个调用的函数,用于初始化对象。
  • Start():当对象被激活后,在 Awake() 后调用。
  • Update():每帧都调用一次,用于更新游戏对象的状态。
  • FixedUpdate():平稳的更新游戏对象的物理状态,每秒执行多次。
  • LateUpdate():在 Update() 执行完毕后调用,一般用于相机跟随等操作。
  • OnGUI():每一帧都会执行,用于绘制游戏对象的 GUI 界面。
  • OnDestroy():当一个游戏对象被销毁时调用。
添加回调函数的方法

在 C# 脚本中添加回调函数的方法分为两种:

  1. 在脚本中直接添加回调函数
using UnityEngine;
using System.Collections;

public class MyScript : MonoBehaviour {

    void Awake() {
        // 添加 Awake() 回调函数逻辑
    }

    void Start() {
        // 添加 Start() 回调函数逻辑
    }

    void Update() {
        // 添加 Update() 回调函数逻辑
    }

    void FixedUpdate() {
        // 添加 FixedUpdate() 回调函数逻辑
    }

    void LateUpdate() {
        // 添加 LateUpdate() 回调函数逻辑
    }

    void OnGUI() {
        // 添加 OnGUI() 回调函数逻辑
    }

    void OnDestroy() {
        // 添加 OnDestroy() 回调函数逻辑
    }
}
  1. 在 Inspector 窗口中添加回调函数

首先,在 Unity 编辑器中选中游戏对象,然后在 Inspector 窗口中找到脚本组件。在对应的脚本组件中找到回调函数所属的生命周期函数,双击函数名,即可自动在脚本中生成回调函数的声明。

回调函数的使用

在回调函数中可以编写相应的游戏逻辑。例如,在 Update() 函数中更新游戏对象的位置、旋转、速度等属性:

using UnityEngine;

public class MyScript : MonoBehaviour {
    
    private float speed = 10.0f;
    
    void Update() {
        transform.position += Vector3.forward * speed * Time.deltaTime;
    }
}

Start() 函数中初始化游戏对象的属性:

using UnityEngine;

public class MyScript : MonoBehaviour {
    
    private Rigidbody rb;
    
    void Start() {
        rb = GetComponent<Rigidbody>();
        rb.mass = 2.0f;
        rb.useGravity = true;
    }
}
总结

回调函数是 Unity 开发中非常重要的一种机制,能够帮助开发者处理各种事件和状态的变化。我们可以通过直接在 C# 脚本中编写回调函数,或者通过 Inspector 窗口将回调函数添加到脚本中。在回调函数中,我们可以编写相应的游戏逻辑,实现精彩的游戏。