/* * 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("prop collected", PropCollected); Messenger.Broadcast("prop collected", prop); 2. Messenger.AddListener("speed changed", SpeedChanged); Messenger.Broadcast("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 arg1); public delegate void Callback (T arg1, U arg2); public delegate void Callback (T arg1, U arg2, V arg3); }