unity 定义回调函数
时间: 2023-06-30 14:17:09 浏览: 65
在 Unity 中,我们可以使用委托(Delegate)和事件(Event)来定义回调函数。
委托是一种类型,它可以存储对一个或多个方法的引用。我们可以使用委托来定义一个回调函数。例如:
```
public delegate void MyCallback();
public class MyClass {
public MyCallback callback;
public void DoSomething() {
// 执行某些操作...
// 调用回调函数
if (callback != null) {
callback();
}
}
}
```
在上面的代码中,我们定义了一个名为 `MyCallback` 的委托类型,它没有参数和返回值。然后在 `MyClass` 类中定义了一个名为 `callback` 的委托变量,并在 `DoSomething` 方法中调用该变量所引用的方法。
我们也可以使用事件来定义一个回调函数。例如:
```
public class MyClass {
public event Action callback;
public void DoSomething() {
// 执行某些操作...
// 触发事件
if (callback != null) {
callback();
}
}
}
```
在上面的代码中,我们定义了一个名为 `callback` 的事件,它的类型是 `Action`,即没有参数和返回值的委托类型。在 `DoSomething` 方法中,我们通过调用事件来触发回调函数。
无论使用委托还是事件,我们都可以通过将一个方法的引用赋值给委托变量或事件来注册回调函数。例如:
```
MyClass obj = new MyClass();
obj.callback += MyCallbackFunction;
```
在上面的代码中,我们创建了一个 `MyClass` 实例,并将 `MyCallbackFunction` 方法的引用赋值给 `callback` 委托变量。这样,当 `DoSomething` 方法调用 `callback` 变量时,就会执行 `MyCallbackFunction` 方法。