1. 程式人生 > >Unity 遊戲框架:UI 管理神器 UI Kit

Unity 遊戲框架:UI 管理神器 UI Kit

### UI Kit 快速入門 首先我們來進行 UI Kit 的快速入門 製作一個介面的,步驟如下: 1. 準備 2. 生成程式碼 3. 邏輯編寫 4. 執行 #### 1. 準備 * 先建立一個場景 TestUIHomePanel。 ![enter image description here](https://images.gitbook.cn/97b04da0-93ce-11e8-b105-d7fa9a3e999e) * 刪除 Hierarchy 其他的 GameObject。 * 搜尋 UIRoot.prefab,拖入 Hierarchy。 ![enter image description here](https://images.gitbook.cn/8c292ef0-93d0-11e8-ad7b-c18499530b9e) * 在 UIRoot / Design GameObject 下建立 Panel ( 右擊 Design -\> UI -\> Panel )。 * 將該 Panel 改名為 UIHomePanel。 * 新增按鈕 BtnStart、BtnAbout。 ![enter image description here](https://images.gitbook.cn/a6e11690-93d0-11e8-ad7b-c18499530b9e) * 對 BtnStart、BtnAbout 新增 UIMark Component。 * 將 UIHomePanel 做成 prefab,再進行 AssetBundle 標記。 ![enter image description here](https://images.gitbook.cn/c1f241c0-93d0-11e8-ad7b-c18499530b9e) #### 2. 生成程式碼 * 右擊 UIHomePanel Prefab 選擇 @UI Ki t- Create UI Code,生成 UI 指令碼。 ![enter image description here](https://images.gitbook.cn/d6f2ff10-93d0-11e8-ad7b-c18499530b9e) * 此時,生成的指令碼自動掛到了 UIHomePanel 上,並且進行 UIMark 標記的控制元件,自動繫結到 prefab 上,如圖所示: ![enter image description here](https://images.gitbook.cn/dff89110-93d0-11e8-ad7b-c18499530b9e) #### 3. 邏輯編寫 * 開啟 UIHomePanel ,在 ResgisterUIEvent 上編寫 Button 事件繫結,編寫後代碼如下: ```csharp /* 2018.7 涼鞋的MacBook Pro (2) */ using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using QFramework; namespace QFramework.UIKitExample { public class UIHomePanelData : UIPanelData { // TODO: Query Mgr's Data } public partial class UIHomePanel : UIPanel { protected override void InitUI(IUIData uiData = null) { mData = uiData as UIHomePanelData ?? new UIHomePanelData(); //please add init code here } protected override void ProcessMsg (int eventId,QMsg msg) { throw new System.NotImplementedException (); } protected override void RegisterUIEvent() { BtnStart.onClick.AddListener(() => { Log.E("BtnStart Clicked !!!"); }); BtnAbout.onClick.AddListener(() => { Log.E("BtnAbout Clicked !!!"); }); } protected override void OnShow() { base.OnShow(); } protected override void OnHide() { base.OnHide(); } protected override void OnClose() { base.OnClose(); } void ShowLog(string content) { Debug.Log("[ UIHomePanel:]" + content); } } } ``` #### 4. 執行 * 建立一個 空 GameObject,命名為 TestUIHomePanel,掛上 UIPanelTester 指令碼。 * UIPanelTester 指令碼的 PanelName 填寫為 UIHomePanel。 ![enter image description here](https://images.gitbook.cn/ea432630-93d0-11e8-ad7b-c18499530b9e) * 執行! * 執行之後,點選對應的按鈕則會有對應的輸出。 UI Kit 的快速入門就介紹到這裡。其中的 UI Kit 程式碼生成和 Res Kit 的 Simulation Mode 為日常開發節省了大量的時間。 ### UI Kit 層級管理 我們的 UIHomePanel 是怎麼開啟的呢? 答案在 UIPanelTester 中。程式碼如下: ```csharp namespace QFramework { using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class UIPanelTesterInfo { /// /// 頁面的名字 /// public string PanelName; /// /// 層級名字 /// public UILevel Level; } public class UIPanelTester : MonoBehaviour { /// /// 頁面的名字 /// public string PanelName; /// /// 層級名字 /// public UILevel Level; [SerializeField] private List