以前一直以为NGUI中的Button Message不能传递参数,偶然间看到UIButtonMessage中的内容:
void Send ()
{
if (string.IsNullOrEmpty(functionName)) return;
if (target == null) target = gameObject;
if (includeChildren)
{
Transform[] transforms = target.GetComponentsInChildren<Transform>();
for (int i = 0, imax = transforms.Length; i < imax; ++i)
{
Transform t = transforms[i];
t.gameObject.SendMessage(functionName, gameObject, SendMessageOptions.DontRequireReceiver);
}
}
else
{
target.SendMessage(functionName, gameObject, SendMessageOptions.DontRequireReceiver);
}
}
t.gameObject.SendMessage(functionName, gameObject, SendMessageOptions.DontRequireReceiver);
调用了Unity中的SendMessage,并且发送消息时传递了参数(gameObject)
所以在接收事件的方法中添加一个参数,如下:
void Store(GameObject obj)
{
Debug.Log(obj.name);
}
最后成功输出了GameObject的名称