zoukankan      html  css  js  c++  java
  • Unity3D——SendMessage方法的使用

    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.   
    4. public class TestSendMassage : MonoBehaviour {  
    5.   
    6.     void Start () {  
    7.         //this.gameObject.BroadcastMessage("sendMsg", SendMessageOptions.DontRequireReceiver);  
    8.         //this.gameObject.SendMessageUpwards("sendMsg", SendMessageOptions.DontRequireReceiver);  
    9.         this.gameObject.SendMessage("sendMsg", SendMessageOptions.DontRequireReceiver);  
    10.     }  
    11.   
    12.     // Update is called once per frame  
    13.     void sendMsg() {  
    14.         Debug.Log("sendMsg");  
    15.     }  
    16. }   
     
    1. using UnityEngine;  
    2. using System.Collections;  
    3. //该脚本依次挂载在TestSendMassage脚本所挂节点的父节点或者子节点上  
    4. public class TestMsg : MonoBehaviour {  
    5.   
    6.     void sendMsg()  
    7.     {  
    8.         Debug.Log("sendMsg1");  
    9.     }  
    10. }  
  • 相关阅读:
    LabVIEW入门第三天(软件及驱动包下载)
    poj1732
    poj1722
    poj1821
    poj1770
    poj1949
    poj1726
    poj1699
    poj1682
    poj1853
  • 原文地址:https://www.cnblogs.com/lancidie/p/8036973.html
Copyright © 2011-2022 走看看