1.消息推送 :游戏对象.SendMessage //无视修饰符限制public/private
2.获取脚本 :游戏对象.GetComponents<脚本组件>().方法();//获取自身所有组件
3.单例模式 :将一个类单例化供全局使用
4.拖拽\UnityEvent;
//=====================================================================
1.消息推送 :游戏对象.SendMessage
GO.BroadcastMessage("方法名",null,SendMessageOptions.DontRequireReceiver);//他和他子类
//方法名,参数,广播可无接受者
//在这个游戏对象或它的任何一个孩子的每一个单行为上调用方法名。
GO.SendMessage("方法名",null,SendMessageOptions.DontRequireReceiver);//他自己
//在这个游戏对象的每一个单行为上调用方法名。
GO.SendMessageUpwards("方法名",null,SendMessageOptions.DontRequireReceiver);//他和他父亲的父亲的....所有父类
//在这个游戏对象和行为的每个祖先的每一个单行为上调用方法名。
2.获取脚本 :游戏对象.GetComponents<脚本组件>().方法();//获取自身所有组件
GameObject.Find("Game manager").GetComponent<Game_manager>().Gameover();
//游戏对象.查找(“Game manager”).获取组件<Game_manager脚本>().Gameover()方法;
// 调用脚本组件中的游戏结束方法;
3.单例模式 :将一个类单例化供全局使用
public class Foodmaker : MonoBehaviour {
private static Foodmaker _instance;
public static Foodmaker instance{
get{
return _instance;
}
}
void Awake() {
_instance=this;
}
//单例模式...
}
public class GameContrller : MonoBehaviour {//游戏管理器
public static GameContrller _instance;
private void Awake() {
_instance=this;//单例
}
}
4.拖拽到UI\UnityEvent
脚本挂载在空物体上,把物体拖拽进UI,然后选择方法
using UnityEngine.Events;
class Myclass {
public UnityEvent myFunction;//无参数委托
}