32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
|
|
/*
|
||
|
|
* Advanced C# messenger by Ilya Suzdalnitski. V1.0
|
||
|
|
*
|
||
|
|
* Based on Rod Hyde's "CSharpMessenger" and Magnus Wolffelt's "CSharpMessenger Extended".
|
||
|
|
*
|
||
|
|
* Features:
|
||
|
|
* Prevents a MissingReferenceException because of a reference to a destroyed message handler.
|
||
|
|
* Option to log all messages
|
||
|
|
* Extensive error detection, preventing silent bugs
|
||
|
|
*
|
||
|
|
* Usage examples:
|
||
|
|
1. Messenger.AddListener<GameObject>("prop collected", PropCollected);
|
||
|
|
Messenger.Broadcast<GameObject>("prop collected", prop);
|
||
|
|
2. Messenger.AddListener<float>("speed changed", SpeedChanged);
|
||
|
|
Messenger.Broadcast<float>("speed changed", 0.5f);
|
||
|
|
*
|
||
|
|
* Messenger cleans up its evenTable automatically upon loading of a new level.
|
||
|
|
*
|
||
|
|
* Don't forget that the messages that should survive the cleanup, should be marked with Messenger.MarkAsPermanent(string)
|
||
|
|
* 参考资料
|
||
|
|
* http://wiki.unity3d.com/index.php?title=Advanced_CSharp_Messenger
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace Coolape
|
||
|
|
{
|
||
|
|
public delegate void Callback (params object[] objs);
|
||
|
|
public delegate void Callback<T> (T arg1);
|
||
|
|
public delegate void Callback<T, U> (T arg1, U arg2);
|
||
|
|
public delegate void Callback<T, U, V> (T arg1, U arg2, V arg3);
|
||
|
|
}
|