您的位置:首页 > 移动开发 > Unity3D

unity GameObject.SendMessage调用的方法有多个参数的调用方法

2014-11-13 18:17 495 查看
1、首先,先定义一个带有不同类型的多个参数的方法(UnityTest):

        看代码:

public void UnityTest(object[] obj)
{
Debug.LogError(obj[0] + "===" + obj[0].GetType());
Debug.LogError(obj[1] + "===" + obj[1].GetType());
Debug.LogError(obj[2] + "===" + obj[2].GetType());
}


此时,假设把这个方法的脚本挂在一个叫“Test”的物体(GameObject)上;

2、其次,写一个方法用SendMessage来调用上面的方法的一个方法:

先定义一个GameObject:

public GameObject TestObj;


在Unity面板,把挂载步骤1中方法的脚本的物体“Test”拖到这个脚本的变量TestObj中;

然后在这个脚本中写一个方法:

void SendMethod(bool result1, bool result2, string message)
{
object[] obj = new object[3];
obj[0] = result1;
obj[1] = result2;
obj[2] = message;
if (TestObj!= null)
{
TestObj.SendMessage("UnityTest", obj, SendMessageOptions.DontRequireReceiver);
}
}


3、最后我们在一个OnGUI中来调用它:

void OnGUI()
{
if(GUILayout.Button("Test"))
{
SendMethod(true,false,"this is message!");
}
}


最后我们来一起看一下打印的结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity SendMessage