1691人加入学习
(0人评价)
【英宝通Unity4.0公开课】第五课:GUI图形用户界面
价格 ¥ 9.90
会员免费学 购买课程

function OnGUI(){

    if(GUI.Button(Rect(10,10,120,100),"Unity Button"))

          print("用户单击了按钮");

 

}

[展开全文]

窗口控件

var windowRect:Rect=Rect(20,20,120,50);

Function OnGUI()

{

windowRect=GUI.window(0,windowRect,MywindowFunction,"我的窗口");//序号,位置尺寸,回调函数,名称

}

function MyWindowFunction(windowID:int)

{

if(GUI.Button(Rect(10,20,100,20),"窗口内按钮")

GUI.Dragwindow(Rect(0,0,10000,10000));//窗口拖动设置

}

[展开全文]
  • GUILayout按钮

funtion onGUI()

 

    GUILayout.Button("这是一个GUILayout按钮”);

}

  • GUI水平控件

    GUILayout.BeginHorizontal();

    GUILayout.EndHorizontal();//结束控件

  • 产生控件间隔

    GUILayout.Space(120);

  • GUI容器GUILayout.BeginArea(Rect(10,20,800,800);
[展开全文]

GUI自定义风格

var buttonStyle:GUIstyle;

function OnGUI()

{

   GUI.Button(Rect(10,140,180,20),"这是一个按钮",buttonstyle);

}

GUI皮肤

var mySkin:GUISkin;

function OnGUI()

{

GUI.skin=myskin;

   GUI.Button(Rect(10,140,180,20),"这是一个皮肤化按钮",);

GUI.Skin=null;

 GUI.Button(Rect(10,140,180,20),"这是一个默认皮肤按钮",);

}

 

[展开全文]

GUI

组的开始,GUI.BeginGroup();

组的结束,GUI.EndGroup();

[展开全文]

使用GUILayout空间 可以自动定位,就不用在使用rect来对其定位了

[展开全文]

    unity提供了完整的GUI界面元素,在unity中创建GUI元素时,我们不需要创建单独的GUI物体,然后再场景中对其定位,而只需要输入简单的代码,即可以完成界面元素的创建包括定位等等复杂的过程.

    在unity中所有的GUI元素都是由OnGUI函数来实现的

 

创建按钮的代码

function OnGUI (){
    if ((Time.time%2)<1){
        if (GUI.Button(Rect(0,0,100,50),"Unity Button")){
    
        print ("用户单击了按钮");
        }
    }

 

控件声明语句的具体格式:

在控件声明语句中,是通过调用GUI类中的不同函数来创建不同类型的控件。

如:GUI.Button,是通过调用GUI类中的Button函数来调用

在控件创建函数中,包含有两个参数:

  Rect(矩形结构):指的是控件在屏幕空间中的位值,其中前两个数值定义的是控件左上角在屏幕空间中的位值,而后两个数值定义的是控件的宽度和高度

  第二个参数:指的是在控件上可以实际显示的内容,一般是文本或影像,或者是图片

GUI.Label:GUI标签

GUI.tooltip:GUI工具提示

content:控件内容,包含文字、图片、提示

[展开全文]

窗口控件,可拖动的GUI,可消失的GUI

将窗口控件变为滑动条风格

[展开全文]

GUILayout.BeginHorizontal();

GUILayout.ENdHorizontal();

水平方向的布局

GUILayout.Space();

指定两个控件的间隔距离,像素单位

可以制定控件具有高度和宽度。

GUIBeginArea(Rect());

GUIEndArea()

大容器

[展开全文]

GUIsytle 最后一个控件的参数,决定形式风格

GUIskin 资源

var mySkin:GUISkin;

GUI.skin = mySkin;

接下来的所有控件都是mySkin的风格

设置之后在属性管理器中调整

 

[展开全文]

控件的自动定位 layout

定义小的视图控件,组,相对于组的左上角进行定位,相当于大的容器

嵌套组,能量条的效果

[展开全文]

工具条控件Toolar

网格控件SelectionGrid

检测控件是否发生改变

 

[展开全文]

标签

按钮

Repeat按钮

文本输入框,多行文本输入框

开关按钮toggle

水平滑块,输出具体数值

 

[展开全文]

添加

function OnGui(){}

每一帧中执行

使用

if

添加按钮控件,并设置单击事件。

控件只需声明,无需销毁。

设置图片背景,控件提示

[展开全文]

windowRect : Rect = Rect

 

MyWindowFunction回调函数

windowRect = GUI.Window(0,

GUI.DragWindow

var windowsShoworNot:boolean =ture 

windowShoworNot=GUI.Toggle(Rect (),windowsShoworNot,"窗口or Not");

[展开全文]

GUILayout.BeginHorizontal();

GUILayout.EndHorizontal();

GUILayout.Space();

 

[展开全文]

当有多个GUILayout控件时Unity默认排序方式是垂直排序。

如何灵活控制布局方式?

水平布局:

GUILayout.BeginHorizontal();//Layout控件水平布局

//在控件之间填写GUILayout.Space函数来填充控件距离具体数值,像素为单位

GUILayout.Space(100)//100像素

GUILayout.EndHorizontal();//结束水平布局


GUILayout控件可以设置控件的宽度,GUILayout.Width(100)


多个GUILayout类型的控件组合在一起可以使用,GUILayout.BeginArea(Rect(...));//Rect限定区域

GUILayout.EndArea();函数对





[展开全文]