Genesis-3D新手入门——18.基本UI及运行

本文详细介绍如何使用Unity的UI系统创建简单的用户界面。从绘制UI界面开始,通过LayoutEditor工具添加按钮并设置属性,到将UI资源导入Unity项目,编写C#脚本来控制UI元素的显示与交互。最后演示了如何运行项目查看UI效果。

基本UI及运行

这一章我们介绍一个UI系统的实例,包括怎么在UI编辑器里画一个简单的UI界面,将UI资源导入Genesis-3D编辑器工程目录下,编写简单代码运行,UI界面的美化。

1.画一个UI界面。我们这里使用LayoutEditor绘制一个简单的UI界面

(1) 添加一个Button:

07152714_bhi6.png

(2) 修改其属性。命名为backgroundButton,同时Layer设置为overlapped(因为这是最底层):

07152714_Cuky.png

(3) 继续添加一个Button,修改其属性。将name改为startButton:

07152714_Llse.png

(4) 继续添加一个Button,修改其属性。将name改为helloButton:

07152714_jWiW.png

(5) 完成绘制后点击File—>Save as,用户可设定保存路径,这里我保存在D盘根目录下,重命名为start.layout文件。这里需要注意,重命名时需要加上.layout后缀名:

07152715_CDAw.png

2.将UI资源导入到Genesis-3D编辑器的工程目录下

(1) 新建工程。名称为UI,选择存放工程的位置,由于我们要运行UI界面,所以这里要勾选UIMedia资源包,点击“创建”:

07152715_ZRJy.png

(2)选中“Asset”——>右键点击——>新建——>C#脚本文件,创建出两个脚本文件 UIRoot.cs和StartPanel.cs。UIRoot.cs是基础脚本,StartPanel.cs是控制UI界面的脚本:

07152715_PjpB.png

(3) 保存场景。把它命名为UI:

07152715_r1ss.png

(4) 将之前做好的start.layout复制到UI工程的资源目录下…\GenesisProjects\UI\Asset\UIMedia:

07152715_M8pO.png

3.编写代码

(1) 进入…\GenesisProjects\UI\UserDefCSharp目录,找到代码文件。用MonoDevelop打开,编辑代码:

07152715_MOSg.png

(2) 代码如图所示:

UIRoot.cs代码:

01namespace 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代码:

01using System;
02using System.Runtime.CompilerServices;
03using ScriptRuntime;
04using ScriptGUI;
05 
06namespace UserDefGUI
07{
08    public class StartPanel
09    {
10        public void Init()
11        {
12            GUI.RegisterLayout(_windowName, @"start.layout"falsetrue);
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中进行脚本调试。具体调试步骤可以查看脚本调试示例:

07152715_0Fej.png

4.运行游戏

(1) 发布游戏。勾选调试模式,便于调试。点击“发布游戏”:

07152715_OMMQ.png

(2) 将运行文件命名为UI.exe,保存到指定位置:

07152715_BshC.png

(3) 运行结果如下。界面中先出现startButton:

07152716_Cqu5.png

    点击startButton按钮以后,startButton消失,helloButton出现:

07152716_NlVO.png

 

转载于:https://my.oschina.net/u/1378050/blog/191078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值