SendMessage,BroadcastMessage
三者比较
用于向某个GameObject发送一条信息,让它完成特定功能。
其实本质是调用绑定GameObject里面的Script里面的函数,可以跨语言的,例如Javascript可以调用C#的函数,我已实验成功。
☆另外,如果GameObject本身有两个脚本,例如“move1”和“move2”,两个脚本内有同名函数例如“moveMe()”,会两个函数都执行一次。
例子:
广播消息
void BroadcastMessage(string methodName, object parameter = null, SendMessageOptionsoptions = SendMessageOptions.RequireReceiver);
void BroadcastMessage(string methodName, SendMessageOptionsoptions);
向上发送消息
void SendMessageUpwards(string methodName, SendMessageOptionsoptions);
void SendMessageUpwards(string methodName, object value = null, SendMessageOptionsoptions = SendMessageOptions.RequireReceiver);
发送消息
void SendMessage(string methodName, object value = null, SendMessageOptionsoptions = SendMessageOptions.RequireReceiver);
void SendMessage(string methodName, SendMessageOptionsoptions);
SendMessageOptions
SendMessageOptions.RequireReceiver //如果没有找到相应函数,会报错(默认是这个状态)
SendMessageOptions.DontRequireReceiver //即使没有找到相应函数,也不会报错,自动忽略
在这个游戏物体上的所有MonoBehaviour上调用名称为methodName的方法。
接收消息的方法可以通过不要参数的方法来选择忽略参数。当选项被设置为SendMessageOptions.RequireReceiver时,如果消息没有被任何一个组件处理,则会打印一个错误。
示例代码
using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour {
void ApplyDamage(float damage) {
print(damage);
}
void Example() {
BroadcastMessage("ApplyDamage", 5.0F);
SendMessageUpwards("ApplyDamage", 5.0F);
SendMessage("ApplyDamage", 5.0F); }
}
文档资料
Component是一切附加到游戏物体的基类,参见:http://game.ceeger.com/Script/Component/Component.html
SendMessage,BroadcastMessage的更多相关文章
- Unity技巧集合
地址:http://blog.csdn.net/stalendp/article/details/17114135 这篇文章将收集unity的相关技巧,会不断地更新内容. 1)保存运行中的状态 uni ...
- Unity3d中SendMessage 用法简单笔记
Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMes ...
- GameObject.SendMessage
Message相关有3条指令: 要接收消息的GameObject.SendMessage ("函数名",参数,SendMessageOptions) //自身和父Objec ...
- Unity3D——SendMessage方法的使用
SendMessage效率不高,因为每次调用的时候都会去遍历检测自身或者子节点上要调用的方法. 一.方法 GameObject自身的Script SendMessage("函数名" ...
- Unity3d中SendMessage 用法
Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastM ...
- Unity3D中的SendMessage使用(消息传递的三种方法)
概述 Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种伪监听者模式,利用的是反射机制. 常用函数 关于消息推送,常用的函数有三个:”SendMessage“.”SendMessa ...
- 【Unity系统知识】关于SendMessage的用法
[Message相关有3个函数] 一.功能:用于向某个GameObject发送一条信息,让它完成特定功能. 1.执行GameObject自身的Script中“函数名”的函数SendMessage (& ...
- Unity的3种消息传递方法(SendMessage等)
为了方便多个物体间的消息传达与接收,Unity中包含了几种消息推送机制 : 分别为SendMessage.SendMessageUpwards.BroadcastMessage. 我们首先以SendM ...
- C#调用SendMessage 用法
函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.该函数是应用程序和应用程序之间进行消息传递的主要手段之一. 函数原型:LRESUL ...
随机推荐
- Windows下编译打包Spice PC客户端
目录 1 环境搭建 2 编译客户端 3 打包客户端 1 环境搭建 1.1 准备工作 安装启动: 安装替换图标工具: Resource Hacker 安装exe制作工具: NSIS(提取码:3dfp ...
- vue-cli watch/timer
watch 监听函数 data:{ letter:'' }, watch:{ letter(){ xxxxxx } }, timer data(){ return{ timer:null } }, h ...
- python的Web框架,Django模板变量,过滤器和静态文件引入
HTML模板的路径查找 在setting中设置查找路径: #默认的查找在此处填写,优先级最高,为在manage.py的同级路径中,添加(常规是template)文件夹,在(template)文件夹中配 ...
- 南方IT教材反馈
为了进一步提升教材质量,大家可以在底部留言区反馈您发现的任何问题或建议,谢谢! 最终我们将从所有读者中找出幸运读者发放奖品! 好教材也有我的一份功劳!
- Windows程序
Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的.每个窗口都有一个消息处理函数.在消息处理函数中,对传入的消息进行处理.系统内还有它自己的缺省消息处理函数. 客户 ...
- angularjs学习第一天笔记
您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...
- CSS中的三种常用定位
一.相对定位(position:relative) 如果想让一个元素在本来的位置进行一个位移,可以将该元素的定位设置为relative,同时指定相对位移(利用top,bottom,left,right ...
- 3D-爱心
520把爱心送给她 用自己独有的方式表白,也是爱的一种体现! 所以呢,我就利用自己现有的知识,做了一个3D爱心! 今天是5月21日,博主在这里希望所有看到这个博客的朋友们能够拥有自己美好的爱情! 同时 ...
- 【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型
前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 ...
- 只有mdf文件的恢复方法
EXEC sp_attach_single_file_db @dbname = 'AdventureWorksDW2012_Data',@physname = 'D:\Program Files (x ...