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

Unity3d中SendMessage 用法简单笔记

2012-09-14 14:00 267 查看
主要作用,跨脚本、语言实现功能。

Message相关有3条指令:

SendMessage ("函数名",参数,SendMessageOptions)
//GameObject自身的Script

BroadcastMessage
("函数名",参数,SendMessageOptions)
//自身和子Object的Script

SendMessageUpwards
("函数名",参数,SendMessageOptions)
//自身和父Object的Script

用于向某个GameObject发送一条信息,让它完成特定功能。

其实本质是调用那个GameObject里面的Script里面的函数,可以跨语言的,例如Javascript可以调用C#的函数,我已实验成功。

☆另外,如果GameObject本身有两个脚本,例如“move1”和“move2”,两个脚本内有同名函数例如“moveMe()”,会两个函数都执行一次。

第三个参数使用:

SendMessageOptions.RequireReceiver
//如果没有找到相应函数,会报错(默认是这个状态)

SendMessageOptions.DontRequireReceiver
//即使没有找到相应函数,也不会报错,自动忽略

//test01.js
function playTest(n:int)
{
print("test01 play!!!!!No."+n);
}

//testMessage.js
var objA:GameObject;
var n=0;
function Update()
{
n++;
objA.SendMessage("playTest",n);
}

//{ 题外话,“函数”一说,是我大学时期C++老师教的叫法,现在看很多资料会把它叫做“方法”(Method),“功能”(function),其实是同一样东西,只是不同语言不同叫法不同翻译而已,为了我的启蒙C++老师,我习惯叫它们做“函数”。 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: