基本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代碼:
03 |
public class UserDefGUIRoot : GUIRoot |
05 |
static UserDefGUIRoot _instance = new UserDefGUIRoot(); |
06 |
static public UserDefGUIRoot Instance |
14 |
public override void Init() |
25 |
StartPanel _startPanel = new StartPanel(); |
StartPanel.cs代碼:
02 |
using System.Runtime.CompilerServices; |
08 |
public class StartPanel |
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); |
18 |
private void StartButtonClick(FString sender) |
20 |
GUI.UIWidget.SetVisible(_windowName, "startButton" , false ); |
21 |
GUI.UIWidget.SetVisible(_windowName, "helloButton" , true ); |
24 |
FString _windowName = "StartPanel" ; |
(3) 編譯代碼。代碼編譯成功後腳本文件才能正確運行,不然須要在Mono中進行腳本調試。具體調試步驟能夠查看腳本調試示例: 4.運行遊戲 (1) 發佈遊戲。勾選調試模式,便於調試。點擊「發佈遊戲」: (2) 將運行文件命名爲UI.exe,保存到指定位置: (3) 運行結果以下。界面中先出現startButton: 點擊startButton按鈕之後,startButton消失,helloButton出現: |