2018/07/07(土)【Unity】SendMessageの代わり「ExecuteEvents.Execute」システム
インターフェースを実装し、イベントの送受信を行う。例えばUIのクラスからシーンのクラスへ、イベントメッセージを投げる場合など。
インターフェース
using UnityEngine.EventSystems;
public interface ITitleRecieveMessage : IEventSystemHandler
{
void OnRecieve();
}
イベント受信
using UnityEngine;
/// <summary>
/// タイトル画面.
/// </summary>
public class TitleScene :MonoBehaviour, ITitleRecieveMessage
{
public void OnRecieve()
{
Debug.Log("call OnRecieve");
}
}
イベント送信
using UnityEngine;
using UnityEngine.EventSystems;
/// <summary>
/// タイトルUI.
/// </summary>
public class TitleCanvas : MonoBehaviour
{
void Start ()
{
ExecuteEvents.Execute<ITitleRecieveMessage>(
TitleScene.Instance.gameObject,
null,
(recieveTarget, y) => recieveTarget.OnRecieve());
}
}