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

unity3d 消息系统研究之一-------内置消息机制

2013-10-23 02:07 232 查看


一、内置脚本通讯方法:

 

1. 同一个对象不同脚本之间的通讯

第一种方法:直接getcomponent调用

// script1
var connect : script2;
function Start ()
{
connect  = GetComponent(script2);//得到script2
conect.Create();//调用script2的Create方法
}
// script2
function Create()
{
GameObject.CreatePrimitive(PrimitiveType.Cube);
}


将script1、2都挂到同一个物体,在屏幕中央创建一个cube

注意,两个脚本都必须绑定到同一个物体。

第二种方法:用sendmessage、BroadcastMessage、和SendMessageUpwards 





这样一个场景,现在把两个脚本都绑在左边的cube上:

sendmessage.js如下:

function OnMouseEnter ()
{
gameObject.SendMessage ("hi");
}


changecolor.js如下:

function hi ()
{
renderer.material.color = Color.red;
}


当鼠标经过左边的cube,发现它变红了,

sendmessage只能在同一个物体上的不同脚本间通讯。

。。BroadcastMessage 给所有此物体子对象传递信息








如图,把另一个cube当做子对象,并给他挂上changecolor.js

sendmessage.js现在用[b]BroadcastMessage:[/b]

function OnMouseEnter ()
{
gameObject.BroadcastMessage("hi");
}






2收到了信息

再加一个cube,changecolor里的方法颜色改成yellow就能这样:






SendMessageUpwards 是给父级传递信息,不再举例


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