在脚本 A 内部创建UnityEvents 变量,在脚本B 内对 脚本 A 的UnityEvents 变量进行绑定;
using UnityEngine;
using UnityEngine.Events;
public class A : MonoBehaviour {
public UnityEvent OnGazed;
void Update () {
if (Input.GeyKeyDown(KeyCode.W))
{
OnGazed.Invoke();
}
}
}
using UnityEngine;
public class B: MonoBehaviour
{
public A a;
void Start()
{
a.OnGazed.AddListener(DoInvokeTest);
}
void DoInvokeTest()
{
//等待3秒 关闭Text 操作
Invoke("CloseText", 3);
}
void CloseText()
{
//关闭文字
Debug.Log("关闭文字");
}
}
此时,当我按下W按键,OnGazed被唤醒,B脚本中的 DoInvokeTest()方法被执行,等待三秒后打印输出 "关闭文字"