消息传递函数

来源:互联网 发布:微信刷步软件 编辑:程序博客网 时间:2024/05/17 23:21

消息传递函数

欢迎大家光临我的博客

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程U3D常见问题U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

     消息传递函数:

       GameObject.SendMassege:向自身的脚本发送消息

//调用本级别所有的GameObject上所有脚本的methodName方法

SendMessage (methodName : string, value : object = null, options : SendMessageOptions = SendMessageOptions.RequireReceiver)

  methodName为方法名,value为方法的参数,options表示是否必须有对象接收该消息(如果是,且没有对象接受,u3d报错);object: Unity所涉及所有物体的基类。

//朝本级别和上级父节点发送调用命令

       GameObject.SendMassegeUpwards;向自身和父物体脚本发消息

      //目标是本级别和全部子节点

       GameObject.BoardcastMessage;向自身和子物体脚本发消息

       实例:

        Sphere(子):       

        void Start () {

           gameObject.SendMessageUpwards ("Do","向父对象发出信息");

        }

        Cube(父):

        void Do(string message){

           print (message);

        }

1. 查找父节点 transform.parent

2. 查找子节点 transform.Find("name");  transform.Find("Arm/Hand/Finger"); 没有找到会返回null,名字如果包含"/"字符将像路径一样穿越层次

3. 查找场景中的其他GameObject 
GameObject.Find Scene下开始查找,根据GameObject的名字进行查找,允许使用"/"穿越层次查找,
GameObject.FindWithTag根据Tag查找一个GameObject
GameObject.FindGameObjectsWithTag 根据Tag批量查找GameObject

GameObjectnameTag可以直接设置,但Tag需要在标签管理器先定义一个Tag,这个Tag才可用,你不能将一个未定义的Tag赋给GameObjectTag变量

最后还有一种搓搓的通讯方法,通过Message来调用其他GameObject,默认是垃圾短信群发,也可以将一个Object穿进去,然后调它的方法

methodName为方法名,value为方法的参数,options表示是否必须有对象接收该消息(如果是,且没有对象接受,u3d报错)

//调用本级别所有的GameObject上所有脚本的methodName方法
void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);

//朝本级别和上级父节点发送调用命令
void SendMessageUpwards(...)

//目标是本级别和全部子节点...
void BroadcastMessage(...)

调用ObjectDestroy方法可以销毁一个GameObject,组件,或者资源。这是一个静态方法,函数的原型为 static void Destroy(Object obj, float t = 0.0F );

可以通过将this传入,销毁自己。

欢我的博客请记住我的名字:Rocket,我的博客地址是

http://unity.gopedu.com/home.php?mod=space&do=blog&view=me

 

转载请注明出处,本文作者:Rocket,本文出处:

http://unity.gopedu.com/home.php?mod=space&do=blog&view=me

 

更多精彩请点击:http://unity.gopedu.com/

0 0
原创粉丝点击