unity 事件Manager 代码
时间: 2023-07-03 19:22:55 浏览: 98
任务管理器代码
5星 · 资源好评率100%
下面是一个简单的示例代码,展示如何使用Unity事件系统:
首先,我们需要创建一个自定义事件类:
```csharp
using UnityEngine.Events;
// 自定义事件类,继承自UnityEvent
public class MyEvent : UnityEvent<int, string> {}
```
接下来,我们需要在代码中使用事件管理器来注册和注销事件侦听器:
```csharp
using UnityEngine;
public class MyListener : MonoBehaviour
{
private MyEvent myEvent;
private void OnEnable()
{
// 获取事件管理器
myEvent = EventManager.GetEvent<MyEvent>();
// 注册事件侦听器
myEvent.AddListener(OnMyEvent);
}
private void OnDisable()
{
// 注销事件侦听器
myEvent.RemoveListener(OnMyEvent);
}
private void OnMyEvent(int intParam, string stringParam)
{
// 处理事件
Debug.LogFormat("MyEvent received with params: {0}, {1}", intParam, stringParam);
}
}
```
最后,我们可以在其他代码中发送事件:
```csharp
using UnityEngine;
public class MySender : MonoBehaviour
{
private MyEvent myEvent;
private void Start()
{
// 获取事件管理器
myEvent = EventManager.GetEvent<MyEvent>();
// 发送事件
myEvent.Invoke(42, "hello");
}
}
```
在上面的代码中,我们创建了一个自定义事件类 `MyEvent`,并在 `MyListener` 脚本中注册了事件侦听器。每当 `MyEvent` 被触发时,`OnMyEvent` 方法将被调用。
在 `MySender` 脚本中,我们获取 `MyEvent` 并使用 `Invoke` 方法发送事件。在这个例子中,我们将发送一个带有整数和字符串参数的事件。
注意,以上代码仅为示例,您可以根据您的需求自定义事件和事件侦听器。
阅读全文