Skip to main content
 首页 » 资源教程

Unity教程:GUI 界面开发

2016年07月07日 15:47:5341220

中国AR网连续分享了Unity教程,今天分享教程《Unity教程:GUI 界面开发》

UI概述:

Unity教程:GUI 界面开发 资源教程 第1张

Unity教程:GUI 界面开发 资源教程 第2张

UI永远是显示在屏幕的最前面上,不受变形、碰撞、光照的影响

GUI概述:

GUI是Graphical User Interface的缩写。Unity的图形界面系统能容易和快速创建出各种交互界面。与传统的方法:创建GUI对象,标出位置,再写对应的事件函数不同,只需要用很少的代码,就可以把这些工作搞定。原理是内置的控制元素,可以把创建实例,标出位置与对应函数一次搞定。例如:

void OnGUI () 

{

    if (GUI.Button (new Rect (10,10,150,100), "I am a button")) 

    {

        print ("You clicked the button!");

    }

}

游戏界面是游戏作品中不可或缺的部分,它可以为游戏提供导航,也可以为游戏内容提供重要的信息,同时也是美化游戏的一个重要手段。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现。

GUI基础:

GUI的代码需要写在OnGUI()这个函数里。就像把每帧要执行的代码写在Update()这个函数里一样。下面是一个简单的例子。

Unity教程:GUI 界面开发 资源教程 第3张

Unity教程:GUI 界面开发 资源教程 第4张

GUI基本控件:

因为OnGUI()函数每祯都执行,不需要另外再去创建或销毁GUI控制元素。如果要在某一情况下显示而在另一情况下不显示GUI,就需要用另外的逻辑去实现。

Position 位置 :

位置这个参数一般用RECT()这个函数来指明。它定义了X坐标,Y坐标,宽度,高度.以像素为单位的绝对坐标来计算. 通过Screen.width and Screen.height这两个属性可以得到屏幕尺寸,以此通过计算来设置位置.以适应不同分辨率的电脑。

方法OnGUI():GUI部分是每“帧”擦除重绘的,只应该在OnGUI中

绘制GUI:

标签:void GUILayout. Label(string)

文本输入域:stringGUILayout.TextField(string);

多行文本框: msgBody= GUILayout.TextArea(msgBody);

密码框:stringGUILayout.PasswordField(pwd,„*‟),第二个参数为掩码字符。

按钮:Button只有鼠标抬起才会返回true,这样用Button做发射子弹就不能按下一直发射,可以使用RepeatButton,这样按下期间会一直返回true。

Tab页: selectedToolBarId =GUILayout.Toolbar(selectedToolBarId,new string[]{“装备”,“经验”,“队友”});  返回值为点击的按钮的序号;
复选框:isMuted = GUILayout.Toggle(isMuted,“静音”);

多行文本框: msgBody = GUILayout.TextArea(msgBody);

GUILayout:

GUILayout布局默认会伸展控件的尺寸。Button等控件支持paramsGUILayoutOption[]options可变参数数组,可以通过

GUILayout.Width(100)返回一个设置控件宽度的GUILayoutOption对象, Height()、 MinWidth()、MinHeight()等同理。

例子:GUILayout.Button("Test",GUILayout.Width(500),GUILayout.Height(30))

GUILayout采用线性布局,类似于StackPanel,默认是纵向布局。


通过GUILayout.BeginHorizontal();开启和GUILayout.EndHorizontal()结束一个横向排列区域,同理BeginVertical() 、EndVertical() 如果嫌控件太挤,可以使GUILayout.Space(30);增加若干像素的间隙。

GUISkin  皮肤:

首先在Project中Create→GUI Skin,选中创建的GUISkin文件,在Inspector中修改每种控件的样式。

编写一个脚本,脚本中定义一个GUISkin类型的属性:

public GUISkin MySkin;

OnGUI中加载样式:

GUI.skin = MySkin;

GUILayout.Button(“确定");

GUILayout.Button(“取消");

选中脚本所拖的的模型,把GUISkin文件拖到MySkin属性上。这样所有按钮都是这样的风格GUI.Skin.GetStyle(“”)。
注意:如果没有效果,就把脚本remove后再添加。

教程由中国AR网(http://www.chinaar.com/)分享,更多教程进入中国AR网可以看到,有相关问题也可以在文章后面进行评论。

本文地址:http://www.chinaar.com/ZYJC/540.html

其余课程地址:

Unity教程:Unity开发框架

Unity教程:Unity地形编辑器

Unity教程:Unity脚本程序基础


评论列表暂无评论
发表评论