Skip to content

Instantly share code, notes, and snippets.

@is8r
Last active August 29, 2015 14:27
Show Gist options
  • Save is8r/db707c69b9b840fddc14 to your computer and use it in GitHub Desktop.
Save is8r/db707c69b9b840fddc14 to your computer and use it in GitHub Desktop.
using UnityEngine;
using System.Collections;
using System;
public class CustomEventArgs : EventArgs {
public string message;
}
public delegate void CustomEventHandler(object sender, CustomEventArgs e);
public class EventTest : MonoBehaviour {
[SerializeField] public event CustomEventHandler OnCustomEventHandler;
public void OnEvent () {
CustomEventArgs args = new CustomEventArgs();
args.message = "Fuga";
if (OnCustomEventHandler != null) OnCustomEventHandler (this, args);
}
}
using UnityEngine;
using System.Collections;
using System;
public class Receiver : MonoBehaviour {
void Start () {
this.gameObject.GetComponent<EventTest> ().OnCustomEventHandler += OnCustomEventHandler;
this.gameObject.GetComponent<EventTest> ().OnCustomEventHandler += delegate(object sender, CustomEventArgs e)
{
print ("OnCustomEventHandler: "+ e.message);
};
}
void OnCustomEventHandler (object sender, CustomEventArgs e) {
print ("OnCustomEventHandler: "+ e.message);
}
}
using UnityEngine;
using System.Collections;
using UnityEngine.Events;
[System.Serializable]
public class CustomUnityEvent : UnityEvent<string>{};
public class EventTest : MonoBehaviour {
[SerializeField] public CustomUnityEvent OnCustomUnityEvent;
public void OnEvent () {
if(OnCustomUnityEvent != null) OnCustomUnityEvent.Invoke ("Fuga");
}
}
using UnityEngine;
using System.Collections;
public class Receiver : MonoBehaviour {
void Start () {
this.gameObject.GetComponent<EventTest> ().OnCustomUnityEvent.AddListener(OnCustomUnityEventHandler);
this.gameObject.GetComponent<EventTest> ().OnCustomUnityEvent.AddListener(delegate(string s){
print ("OnUnityEvent.AddListener: " + s);
});
}
void OnCustomUnityEventHandler (string s) {
print ("OnCustomUnityEventHandler: "+ s);
}
}
using UnityEngine;
using System.Collections;
[RequireComponent(typeof (Receiver))]
public class EventTest : MonoBehaviour {
private Receiver receiver;
void OnEvent {
receiver = this.gameObject.GetComponent<Receiver> () as Receiver;
receiver.Hoge ("Fuga");
}
}
using UnityEngine;
using System.Collections;
public class Receiver : MonoBehaviour {
public void Hoge (string s) {
print ("Hoge: "+s);
}
}
using UnityEngine;
using System.Collections;
using System;
public class EventTest : MonoBehaviour {
[SerializeField] public event EventHandler OnEventHandler;
public void OnEvent () {
if (OnEventHandler != null) OnEventHandler (this, EventArgs.Empty);
}
}
using UnityEngine;
using System.Collections;
using System;
public class Receiver : MonoBehaviour {
void Start () {
this.gameObject.GetComponent<EventTest> ().OnEventHandler += OnEventHandler;
this.gameObject.GetComponent<EventTest> ().OnEventHandler += delegate(object sender, EventArgs e)
{
print ("OnEventHandler: "+ e);
};
}
void OnEventHandler (object sender, EventArgs e) {
print ("OnEventHandler: "+ e);
}
}
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class EventTest : MonoBehaviour {
public void OnEvent () {
ExecuteEvents.Execute<IReciever>(this.gameObject, null, (x,y)=>x.OnExecuteEventsHandler("Fuga"));
ExecuteEvents.Execute<IReciever>(
target: this.gameObject,
eventData: null,
functor: (x,y) => x.OnExecuteEventsHandler("Fuga"));
}
}
using UnityEngine.EventSystems;
public interface IReciever : IEventSystemHandler {
void OnExecuteEventsHandler(string s);
}
using UnityEngine;
using System.Collections;
public class Receiver : MonoBehaviour, IReciever {
public void OnExecuteEventsHandler (string s)
{
Debug.Log("OnExecuteEventsHandler: " + s);
}
}
using UnityEngine;
using System.Collections;
using UnityEngine.Events;
public class EventTest : MonoBehaviour {
public UnityEvent OnUnityEvent;
public void OnEvent () {
if(OnUnityEvent != null) OnUnityEvent.Invoke ();
}
}
using UnityEngine;
using System.Collections;
public class Receiver : MonoBehaviour {
void Start () {
this.gameObject.GetComponent<EventTest> ().OnUnityEvent.AddListener(OnUnityEventHandler);
this.gameObject.GetComponent<EventTest> ().OnUnityEvent.AddListener(delegate(){
print ("OnUnityEvent.AddListener");
});
}
void OnUnityEventHandler () {
print ("OnUnityEventHandler");
}
}
this.gameObject.BroadcastMessage(methodName, argument);
this.gameObject.SendMessage(methodName, argument);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment