UI框架---菜鸟的奇怪大冒险

学习与分享:

奇怪的大冒险简单部分的UI框架分为三种:

一、综合管理类(UIManager);

1、先写一个单例使UIManager脚本调用方便

//static UIManager instance;

//public static UIManager Instanc { get { return instanc;}}

//void Awake(){

//等于脚本本身

instance = this;}

2.创建  一个用来存放游戏界面预设体的字典 、一个存放所有界面脚本的字典、 一个存放界面的栈

预设体的字典  Dictionary UIobjDict = new Dictionary();

脚本的字典  Dictionary currentUIDict = new Dictionary();

界面显示的栈:StackUIStack = new Stack();

3、写个方法给预设体加载到字典内;

void AddUIPrefabByName(string UIName)    {

//判断是否存在,不存在再加载 

if(UIObjDict.ContainsKey(UIName)){ 

          return; }

string path = prefabDir + "/" + UIName;        GameObject uiObj = Resources.Load(path); //构建一条路径

if(uiObj != null){

UIObjDict.Add(UIName, uiObj);

//print("11");}}

public UIBase InstantiteUIByName(string UIName)  //我们需要有返回UIBase所以我们给方法的返回值为UIBase

{

if (currentUIDict.ContainsKey(UIName)){

return currentUIDict[UIName];   //我们需要先进行判断 如果存在则可以直接返回

}

//不存在 我们将预设体进行实例化 并获取脚本

GameObject objPerfab = UIobjDict[UIName];//取出预设体

GameObject obj = GameObject.Instantiate(objPerfab);//根据预设体进行实例化

UIBase uibase = obj.GetComponent();

currentUIDict.Add(UIName, uibase);//保存游戏对象身上的UIBase的脚本进currentUIDict字典

obj.name = UIName;

return uibase;

}

二、界面管理基类(UIBase);

1、.过预设体来实例化这个物体,并获取到这个物体上的UIBase(继承UIBase的脚本)脚本

public virtual void UserInterfaceEnter(){} //当界面第一次进入的时候调用

public virtual void UserInterfacePause(){} //当界面隐藏的时候调用

public virtual void UserInterfaceResume(){} //当界面重新显示时调用

public virtual void UserInterfaceExit(){}  //当界面退出是调用


三、总体游戏控制脚本;

//UIManager.Instance.PushUserInterface("StartCanvas");  //表示显示StartCanvas这个界面

分析:UI框架使得你的编程思维更清晰,读取脚本更又条例性、更利于维护;




你可能感兴趣的:(UI框架---菜鸟的奇怪大冒险)