unity事件的监听和广播
时间: 2024-04-09 10:33:36 浏览: 27
Unity中的事件监听和广播是一种常见的消息传递机制,用于组件之间的通信。在Unity中,可以使用UnityEvent和UnityEvent<T>来定义和触发事件。
1. 定义事件:
首先,需要在一个类中定义一个事件。可以在该类中创建一个公共的UnityEvent类型的字段,并且使用UnityEvent的AddListener方法来添加监听器。
```csharp
using UnityEngine.Events;
public class MyEventClass : MonoBehaviour
{
public UnityEvent myEvent;
public void TriggerEvent()
{
myEvent.Invoke();
}
}
```
2. 监听事件:
其他的组件可以通过获取事件所在的类的引用,并使用AddListener方法添加监听器来监听该事件。
```csharp
public class MyListenerClass : MonoBehaviour
{
private MyEventClass eventClass;
private void Start()
{
eventClass = GetComponent<MyEventClass>();
eventClass.myEvent.AddListener(OnEventTriggered);
}
private void OnEventTriggered()
{
Debug.Log("Event Triggered!");
}
}
```
3. 广播事件:
事件类可以通过调用UnityEvent的Invoke方法来触发事件,从而通知所有的监听器。
```csharp
public class MyEventClass : MonoBehaviour
{
public UnityEvent myEvent;
public void TriggerEvent()
{
myEvent.Invoke();
}
}
```
以上就是Unity中事件的监听和广播的基本用法,可以通过这种方式实现组件之间的松耦合通信。