Genesis-3D新手入門——18.基本UI及運行

基本UI及運行

這一章咱們介紹一個UI系統的實例,包括怎麼在UI編輯器裏畫一個簡單的UI界面,將UI資源導入Genesis-3D編輯器工程目錄下,編寫簡單代碼運行,UI界面的美化。web

1.畫一個UI界面。咱們這裏使用LayoutEditor繪製一個簡單的UI界面app

(1) 添加一個Button:編輯器

(2) 修改其屬性。命名爲backgroundButton,同時Layer設置爲overlapped(由於這是最底層):ide

(3) 繼續添加一個Button,修改其屬性。將name改成startButton:spa

(4) 繼續添加一個Button,修改其屬性。將name改成helloButton:調試

(5) 完成繪製後點擊File—>Save as,用戶可設定保存路徑,這裏我保存在D盤根目錄下,重命名爲start.layout文件。這裏須要注意,重命名時須要加上.layout後綴名:code

2.將UI資源導入到Genesis-3D編輯器的工程目錄下orm

(1) 新建工程。名稱爲UI,選擇存放工程的位置,因爲咱們要運行UI界面,因此這裏要勾選UIMedia資源包,點擊「建立」:遊戲

(2)選中「Asset」——>右鍵點擊——>新建——>C#腳本文件,建立出兩個腳本文件 UIRoot.cs和StartPanel.cs。UIRoot.cs是基礎腳本,StartPanel.cs是控制UI界面的腳本:ip

(3) 保存場景。把它命名爲UI:

(4) 將以前作好的start.layout複製到UI工程的資源目錄下…\GenesisProjects\UI\Asset\UIMedia:

3.編寫代碼

(1) 進入…\GenesisProjects\UI\UserDefCSharp目錄,找到代碼文件。用MonoDevelop打開,編輯代碼:

(2) 代碼如圖所示:

UIRoot.cs代碼:

01 namespace UserDefGUI
02 {
03     public class UserDefGUIRoot : GUIRoot
04     {
05         static UserDefGUIRoot _instance = new UserDefGUIRoot();
06         static public UserDefGUIRoot Instance
07         {
08             get
09             {
10                 return _instance;
11             }
12         }
13  
14         public override void Init()
15         {
16             base.Init();
17             LoadLayout();
18         }
19  
20         void LoadLayout()
21         {
22             _startPanel.Init();
23         }
24  
25         StartPanel _startPanel = new StartPanel();
26  
27     }
28 }

StartPanel.cs代碼:

01 using System;
02 using System.Runtime.CompilerServices;
03 using ScriptRuntime;
04 using ScriptGUI;
05  
06 namespace UserDefGUI
07 {
08     public class StartPanel
09     {
10         public void Init()
11         {
12             GUI.RegisterLayout(_windowName, @"start.layout", false, true);
13             GUI.SetLayoutVisible(_windowName, true);
14             GUI.UIWidget.SetVisible(_windowName, "helloButton", false);
15             GUI.UIWidget.SetEventMouseButtonClick(_windowName, "startButton", StartButtonClick, EventControl.Add);
16         }
17  
18         private void StartButtonClick(FString sender)
19         {
20             GUI.UIWidget.SetVisible(_windowName, "startButton", false);
21             GUI.UIWidget.SetVisible(_windowName, "helloButton", true);
22         }
23  
24         FString _windowName = "StartPanel";
25  
26     };
27 }

(3) 編譯代碼。代碼編譯成功後腳本文件才能正確運行,不然須要在Mono中進行腳本調試。具體調試步驟能夠查看腳本調試示例:

4.運行遊戲

(1) 發佈遊戲。勾選調試模式,便於調試。點擊「發佈遊戲」:

(2) 將運行文件命名爲UI.exe,保存到指定位置:

(3) 運行結果以下。界面中先出現startButton:

    點擊startButton按鈕之後,startButton消失,helloButton出現:

 

相關文章
相關標籤/搜索