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 ...
随机推荐
- Linux添加防火墙、iptables的安装和配置(亲测)
iptables基础 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”.规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源 ...
- mysql cmd 启动服务
1.确定你的mysql 是否能正常工作登录数据库cmd--“命令提示字符”窗口录入,录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin再键入命令mysql ...
- 强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构
互联网行业是大势所趋,从招聘工资水平即可看出,那么如何提升自我技能,满足互联网行业技能要求?需要以目标为导向,进行技能提升,本文主要针对高并发分布式系统设计.架构(数据一致性)做了分析,祝各位早日走上 ...
- nginx报错整理
一. 1.线上有个域名出现一个访问报错: 413 Payload Too Large 这里贴一下关于这个报错的解释: The 413 (Payload Too Large) status code i ...
- vector向量容器(常用的使用方法总结)
关于STL中vector容器的学习,编译运行后边看代码,边看执行结果效果更佳,还是想说看别人的代码一百遍,不如自己动手写一遍. vector向量容器不但能像数组一样对元素进行随机访问,还能随时在尾部插 ...
- Curling 2.0(DFS简单题)
题目链接: https://vjudge.net/problem/POJ-3009 题目描述: On Planet MM-21, after their Olympic games this year ...
- Redis列表操作
列表类似于双向链表结构,可从序列两端推入或者弹出元素. (列表常用命令) RPUSH : RPUSH key-name value [value1 value2,...] ------------将 ...
- layui上传图片接口
mvc中 前台调用接口 url:"../upload/uploadfiles/" 然后开始接口 代码: string a = ""; try { HttpFil ...
- SQL Server优化查询
1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条 ...
- 入门angularJs笔记手记一
angularjs表达式: ng-init ng-bind ng-app ng-model输入域的值绑定到程序 ng-repeat重复一个HTML元素 自定义指令: <script> va ...