unity 使用泛型当Action事件参数
时间: 2023-07-08 19:36:38 浏览: 178
泛型的使用
4星 · 用户满意度95%
在 Unity 中,使用泛型作为 `Action` 事件参数的方式与其他 C# 程序类似。下面是一个使用泛型作为 `Action` 事件参数的示例:
```
using System;
using UnityEngine;
public class Example : MonoBehaviour
{
public event Action<int> ExampleEvent;
private void Start()
{
if (ExampleEvent != null)
{
ExampleEvent(42);
}
}
}
```
在上面的示例中,我们定义了一个名为 `Example` 的 `MonoBehaviour` 类,并声明了一个名为 `ExampleEvent` 的 `Action<int>` 类型的事件。在 `Start` 方法中,我们检查 `ExampleEvent` 是否为空,如果不为空,则调用事件并将整数值 `42` 作为参数传递。
在使用事件时,我们可以将一个方法添加到事件的委托链中,该方法必须与事件的参数类型相匹配。例如,如果我们想在 `ExampleEvent` 事件发生时执行一个方法,可以这样做:
```
private void ExampleEventHandler(int parameter)
{
// Do something with the parameter
}
private void Start()
{
Example example = new Example();
example.ExampleEvent += ExampleEventHandler;
}
```
在上面的示例中,我们创建了一个名为 `ExampleEventHandler` 的方法,它接受一个整数类型的参数。然后,我们创建了一个 `Example` 类的实例,并将 `ExampleEventHandler` 方法添加到 `ExampleEvent` 事件的委托链中。当 `ExampleEvent` 事件发生时,`ExampleEventHandler` 方法将被调用,并将事件的参数传递给它。
阅读全文