using UnityEngine;
using UnityEngine.UI;
public class TestCtrl : MonoBehaviour
{
/// <summary>
/// 定义一个委托
/// </summary>
public delegate void Xian();
/// <summary>
/// 给委托绑定一个事件
/// </summary>
public static event Xian Xian1;
public Button btn;
void Start()
{
btn.onClick.AddListener(OnBtn);
}
private void OnBtn()
{
//点击按钮调用事件
Xian1();
}
}
实现事件
using UnityEngine;
public class TestCtrl2 : MonoBehaviour
{
void Awake()
{
//注册事件
TestCtrl.Xian1 += Xian;
}
public void Xian()
{
Debug.Log("xian222" + gameObject.name);
}
private void OnDisable()
{
//注销事件
TestCtrl.Xian1 -= Xian;
}
}

这篇博客介绍了如何在Unity中通过定义委托和事件来实现不同游戏对象之间的通信。具体步骤包括创建委托类型,定义静态事件,然后在需要触发事件的组件中订阅和取消订阅该事件。示例代码展示了在`TestCtrl`和`TestCtrl2`两个类中如何使用这些概念,当按钮被点击时,会触发`TestCtrl2`中的`Xian`方法,输出相关日志。
8428

被折叠的 条评论
为什么被折叠?



