unity一套简单的事件系统
时间: 2024-09-30 07:14:04 浏览: 31
Unity中的事件系统是一种设计模式,用于管理组件之间的通信,特别是当一个组件需要通知其他组件某个动作已完成或发生了变化时。Unity并没有内置的事件系统,但开发者通常会自定义或利用第三方库如C#的`System.EventArgs`、`UnityEvent`或者更高级的`Messaging`系统来实现。
例如,你可以创建一个`MyCustomEvent`类,继承自`UnityEvent<EventArgs>`:
```csharp
public class MyCustomEvent : UnityEvent<MyCustomEventArgs>
{
}
```
然后在组件上公开这个事件,当需要触发时,只需调用`Raise()`方法:
```csharp
public class EventPublisher : MonoBehaviour
{
public MyCustomEvent OnSomeActionCompleted;
//...
private void OnActionCompleted()
{
OnSomeActionCompleted.Invoke(new MyCustomEventArgs());
}
}
public class EventSubscriber : MonoBehaviour
{
public void OnEventReceived(MyCustomEventArgs args)
{
//处理收到的事件
}
}
```
通过这种方式,事件订阅者可以在接收到事件时执行相应的操作。
阅读全文