SendMessage效率不高,因为每次调用的时候都会去遍历检测自身或者子节点上要调用的方法。

一、方法

GameObject自身的Script

SendMessage("函数名", 参数,SendMessageOptions)

自身和子Object的Script
BroadcastMessage("函数名", 参数,SendMessageOptions)
自身和父Object的Script
SendMessageUpwards("函数名", 参数,SendMessageOptions)
可以跨语言的,例如Javascript可以调用C#的函数

二、第三个参数使用
如果没有找到相应函数,会报错(默认是这个状态)
SendMessageOptions.RequireReceiver
没有找到相应函数,也不会报错,自动忽略
SendMessageOptions.DontRequireReceiver
 
三、测试代码 
  1. using UnityEngine;
  2. using System.Collections;
  3. public class TestSendMassage : MonoBehaviour {
  4. void Start () {
  5. //this.gameObject.BroadcastMessage("sendMsg", SendMessageOptions.DontRequireReceiver);
  6. //this.gameObject.SendMessageUpwards("sendMsg", SendMessageOptions.DontRequireReceiver);
  7. this.gameObject.SendMessage("sendMsg", SendMessageOptions.DontRequireReceiver);
  8. }
  9. // Update is called once per frame
  10. void sendMsg() {
  11. Debug.Log("sendMsg");
  12. }
  13. }
  1. using UnityEngine;
  2. using System.Collections;
  3. //该脚本依次挂载在TestSendMassage脚本所挂节点的父节点或者子节点上
  4. public class TestMsg : MonoBehaviour {
  5. void sendMsg()
  6. {
  7. Debug.Log("sendMsg1");
  8. }
  9. }

转载于:https://www.cnblogs.com/lancidie/p/8036973.html

Unity3D——SendMessage方法的使用相关推荐

  1. Unity中的SendMessage方法

    本质就是调用那个GameObject里面的Script里面的函数,可以跨语言的,例如Javascript可以调用C#的函数. 如果GameObject本身有两个脚本,例如"Move1.c#& ...

  2. WP8:Unity3D之间的值传递

    原地址:http://www.cnblogs.com/zhxilin/p/3799210.html 在前面的讨论中,我们介绍了如何在Unity3D for WP8中使用高于.Net 3.5的第三方库, ...

  3. Unity3D 场景与C# Control进行结合

    杨航最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过发现游戏的UI和业务系统的UI还是有一定的差别,很多的用户还是比较习惯WinForm或者WPF中的UI ...

  4. 【Unity人物属性】人物属性大量设置用set,get方法还是public成员

    当使用到设置人物属性的时候,使用set,get方法还是 直接把 人物属性 设置 为  public成员 本文没有描述SendMessage方法和使用单例. ---------------------- ...

  5. Unity背包系统-2:数据库存储方法ScriptableObject和显示背包物品InventoryManager

    1. 数据库脚本 1.1 元素(item)代码: using System.Collections; using System.Collections.Generic; using UnityEngi ...

  6. Android ANR异常及解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 今天面试遇到这道题,刚开始没看出这个anr缩写的意思,后来问了面试官原来是这个意思: ANRs ("Applicat ...

  7. Android Handler详细使用方法实例

    ( 这个github 中是 HandlerThread 的一个用法,和本文的HanderThread写法不同 https://github.com/whtchl/HandlerThread) 本文 ...

  8. java handler使用方法_Android中Handler的使用方法及实例(基础回顾)

    Handler使用例1 这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中. 本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s ...

  9. java中javamail收发邮件实现方法

    概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...

最新文章

  1. CSS中表格的一些属性和使用
  2. cstring越界_try catch 捕捉数组越界异常
  3. stringutils_番石榴分配器vs StringUtils
  4. Map以自定义类做为键值
  5. Kubernetes要成为一个企业友好平台,到底还缺啥?
  6. 低秩矩阵分解 matlab,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
  7. 20165332第六周学习总结
  8. 2021-01-22 LR照片处理逻辑及曝光调整中的基本审美
  9. 【转】推荐下载使用:功能强大的光盘刻录软件NERO 9.0中文版(最新官方原版+有效序列号)...
  10. 暗黑启示录bt版java下载,Transmission搭建BT下载服务器
  11. 第七次人口普查数据可视化---pyecharts
  12. 5个超实用的Excel数据透视表技巧
  13. 一文打尽PHP代码加密方式
  14. termux自动启动ssh
  15. 细粒度锁的实现之分级锁的设计实现
  16. 侦探系列-照片隐藏信息提取
  17. python 打开xls文件写数据
  18. mac 更新hosts文件使其生效
  19. 宠爱吖用计算机怎么弹,宠爱吖简谱-歌谱-歌词
  20. 【Java容器】Java容器入门教程

热门文章

  1. spark on yarn yarn-client模式实现源码走读
  2. RocketMQ源码解析-Producer消息发送
  3. Mysql探究与学习大纲--主要是为了自己复习方便
  4. singleflight包原理解析
  5. C/C++笔试经典——链表倒序
  6. 系统设计面试的答题思维框架
  7. springboot 历史版本文档_这个男人练了整整二年的SpringBoot看他如何教你学学学!...
  8. 分布式事务模型--TCC
  9. 分布式事务模型--XA Specification
  10. MySQL的环境变量配置