
作用:传递信息
broadcastMessage 可以向该脚本所挂物体和该物体的子物体(子物体的子物体……)发送另一脚本的指定方法(只有该物体和其子物体上有另一脚本);
sendMessage 同一对象的不同脚本间互通消息,即使是私有方法也可以;name就是可以传递的参数
sendmessageUpwards 可以向该脚本所挂物体和该物体的父物体(父物体的父物体……)发送另一脚本的指定方法(只要该物体和其父物体上有另一脚本)
参数:(“方法名”,传递的信息,传递的方式)
参数:(“method”,name,SendMessageOptions.RequireReceiver);
传递的方式:
SendMessageOptions.RequireReceiver需要接受者,就是说方法method1必须要存在,不然就会报错;
SendMessageOptions.DontRequireReceiver不需要接收者。方法不存在也不报错
using System.Collections;using System.Collections.Generic;using UnityEngine;public class testTwo : MonoBehaviour {string name = "king";// Use this for initializationvoid Start (){// transform.SendMessage("method",name,SendMessageOptions.RequireReceiver);transform.BroadcastMessage("method",name,SendMessageOptions.DontRequireReceiver);transform.SendMessageUpwards("method",name,SendMessageOptions.DontRequireReceiver);transform.SendMessage("method2",name,SendMessageOptions.DontRequireReceiver);//在检测射线碰撞时也可以使用此方法,调用与射线碰撞的游戏物体身上的某一脚本的指定方法//hit.collider.SendMessage("method",SendMessageOptions.DontRequireReceiver);}void method(string a){print(a);}
using System.Collections;using System.Collections.Generic;using UnityEngine;public class testThree : MonoBehaviour {private void method() //不同脚本之间调用,sendmessage() 私有方法也可以被调用{print(21);}}