Skip to content

Instantly share code, notes, and snippets.

@tsubaki
Last active August 29, 2015 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsubaki/85d6bc265b32eafeba94 to your computer and use it in GitHub Desktop.
Save tsubaki/85d6bc265b32eafeba94 to your computer and use it in GitHub Desktop.
ボタンのイベントをスクリプト上で登録する
using UnityEngine;
using UnityEngine.UI;
[ExecuteInEditMode]
public class ButtonAction : MonoBehaviour
{
#if UNITY_EDITOR
[SerializeField, HideInInspector]
Button button;
void Reset ()
{
// シーン内からボタンを取得する.
button = GameObject.Find ("/Canvas/Button").GetComponent<Button> ();
// 既にボタンにイベントを登録していたら削除する.
UnityEditor.Events.UnityEventTools.RemovePersistentListener<GameObject> (button.onClick, OnClick);
// ボタンにイベントを登録する.
UnityEditor.Events.UnityEventTools.AddObjectPersistentListener<GameObject> (button.onClick, OnClick, gameObject);
}
void OnDestroy ()
{
// ボタンからイベントを削除する.
UnityEditor.Events.UnityEventTools.RemovePersistentListener<GameObject> (button.onClick, OnClick);
}
#endif
// クリック時にイベント登録したオブジェクト名を表示する.
void OnClick (GameObject obj)
{
Debug.Log (gameObject.name);
}
}
@tsubaki
Copy link
Author

tsubaki commented May 31, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment