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());
    }
}

OK キャンセル 確認 その他