Genesis-3D 入门教程—18.基本UI及运行
来源:互联网 发布:淘宝被差评有什么影响 编辑:程序博客网 时间:2024/04/30 13:51
该文章转载自Genesis-3D官网,
更多教程请访问Genesis-3D官网:http://www.genesis-3d.com.cn
基本UI及运行
这一章我们介绍一个UI系统的实例,包括怎么在UI编辑器里画一个简单的UI界面,将UI资源导入Genesis-3D编辑器工程目录下,编写简单代码运行,UI界面的美化。
1.画一个UI界面。我们这里使用LayoutEditor绘制一个简单的UI界面
(1) 添加一个Button:
(2) 修改其属性。命名为backgroundButton,同时Layer设置为overlapped(因为这是最底层):
(3) 继续添加一个Button,修改其属性。将name改为startButton:
(4) 继续添加一个Button,修改其属性。将name改为helloButton:
(5) 完成绘制后点击File—>Save as,用户可设定保存路径,这里我保存在D盘根目录下,重命名为start.layout文件。这里需要注意,重命名时需要加上.layout后缀名:
2.将UI资源导入到Genesis-3D编辑器的工程目录下
(1) 新建工程。名称为UI,选择存放工程的位置,由于我们要运行UI界面,所以这里要勾选UIMedia资源包,点击“创建”:
(2)选中“Asset”——>右键点击——>新建——>C#脚本文件,创建出两个脚本文件 UIRoot.cs和StartPanel.cs。UIRoot.cs是基础脚本,StartPanel.cs是控制UI界面的脚本:
(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出现:
- Genesis-3D 入门教程—18.基本UI及运行
- Genesis-3D 入门教程—15.物理
- Genesis-3D 入门教程—16.声音
- Genesis-3D 入门教程—3.游戏的发布与运行
- Genesis-3D 入门教程—1.安装编辑器
- Genesis-3D 入门教程—2.创建工程
- Genesis-3D 入门教程—4.FBX文件的导入
- Genesis-3D 入门教程—6.声音的导入
- Genesis-3D 入门教程—7.贴图的导入
- Genesis-3D 入门教程—8.天空盒
- Genesis-3D 入门教程—9.脚本系统
- Genesis-3D 入门教程—10.粒子系统
- Genesis-3D 入门教程—11.地形系统
- Genesis-3D 入门教程—12.脚本调试
- Genesis-3D 入门教程—13.发布到Android平台
- Genesis-3D 入门教程—14.发布到iOS平台
- Genesis-3D 入门教程—17.转动的球体
- Genesis-3D 入门教程—19.场景水
- 多项式参数估计——最小二乘法
- 判别模型(descriminative model)+生成模型(generative model)
- C语言连接数据库
- 1010:平均绩点
- leetcode-Binary Tree Zigzag Level Order Traversal
- Genesis-3D 入门教程—18.基本UI及运行
- Java备忘录模式(Memento)
- HDU 3531 Match(树状数组)
- 快速傅里叶变换(蝶形算法)
- JavaWeb开发中遇到的错误:org.apache.catalina.core.StandardWrapperValve invoke
- CPtrList操作(插入,删除特定元素,删除全部)
- 语音识别工具箱之kaldi介绍
- 1013:摆积木
- Genesis-3D 入门教程—19.场景水