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

来源:互联网 发布:日本高考数学试题 知乎 编辑:程序博客网 时间:2024/05/16 00:56



一、内置脚本通讯方法:

 

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

第一种方法:直接getcomponent调用

// script1var connect : script2;function Start () { connect  = GetComponent(script2);//得到script2 conect.Create();//调用script2的Create方法}// script2function 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现在用BroadcastMessage:

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



2收到了信息

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


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


不是教程,是笔记,待续

原创粉丝点击