Unity3d控件

本文深入探讨Unity中各种GUI控件的功能、参数及应用案例,包括Label、Box、Button、RepeatButton、TextField、PasswordField、TextArea、Toggle、ToolBar、Slider、Scrollbar、ScrollView和Window,以及如何使用自动布局和Area实现灵活的界面设计。
摘要由CSDN通过智能技术生成

Label 控件:

Labe控件适用来显示文本信息或者图片,它不会晌应鼠标或键盘消息。

static function Label( posittion : Rect , text:string );

第一个参数不变 第二个参数可以为: image:Texture 、 content:GUIContent 

或者三个参数 第一个参数不变 、 test:string , style:GUIStyle 、 content:GUIContent , style:GUIStyle .

position: 屏幕绘制区域 、 text :显示的文本 、 image :显示的图片 content:控件内容包含文字、图片、提示 返回void

style : 控件的GUIStyle 风格

CUI.Label  (Rect (10、 10、 100、 20) , "Hello World" )显示文字


public Texture2D texture;

GUI.Label( Rect(10,40,texture.width, texture.height),texture);  显示图片



Box 控件

Box控件用来绘制带有边框背景的文字或图片

static function Box( position : Rect , text :String) : void

static function Box( position : Rect , image : Texture) :void

static function Box(position : Rext , content : GUIContent) : void

static function Box( position : Rect , text:String , style:GUIStyle):void

static function Box(position : Rect , image:Texture , style:GUIStyle):void

static function Box(Position : Rect , content:GUIContent , style:GUIStyle):void

position : 屏幕绘制区域

text : 要显示的文本

image:要显示的图片

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

style : 控件的GUIStyle 风格

GUI.Box(Rect(0,0,Screen.width*0.5,Screen.height*0.5),"This is title");


Button 控件

Button控件用来绘制晌应单击事件的按钮

具体参数跟Label 和 Box 一样 只是返回 boolean

当有按钮单击事件发生时,button函数返回true,否则返回false,因此按钮的事件处理脚本需要写在控件代码if

判断语句条件为true的代码区域中。

var btnTexture : Texture;

function OnGUI()

{

if( !btnTexture )

{

return ;

}

if( GUI.Button( Rect( 10, 10 , 50 , 50),btnTexture))

Debug.Log("asd")

}


RepeatButton控件

Button控件在每次单击事件中只相应一次,如果想处理鼠标左键长按
的事件,可以使用RepeatButton控件。RepeatButton会在左键按下期间一直返回true

函数申明参数同上返回 boolean


if( GUI.RepeatButton( Rect(10,70,50,30),"Click"))

Debug.Log("Click the Button")


TextField控件

在游戏中,经常需要用到信息输入的窗口,比如聊天窗、用户信息的输入
等,这些情况可以使用TextField控件

static function TextField( position:Rect,text:String , maxLength:int):String

图片参数换成 int 类型参数 返回String

maxLength : 字符串最大长度


PasswordField控件

PasswordField 控件用于绘制密码输入框,经常用于用户登录界面中

static function PasswordField( position:Rect , password:String , maskChar:char):String

static function PasswordField( position:Rect , password:String , maskChar:char,maxLength:int):String

static function PasswordField( position:Rect , password:String , maskChar:char ,style:GUIStyle):String

static function PasswordField( position:Rect , password:String , maskChar:char ,maxLength:int,style:GUIStyle):String

password : 编辑框中的密码字符串

maskChar : 密码字符串的掩码字符




TextArea控件

TextArea控件与TextFied的用法类似,区别就是TextFied是单行的,TextArea可以编辑多行的文字.

函数同 TextField


Toggle控件

Toggle控件可以用于制作开关按钮,每次单击,它都会在开和关的状态之间切换。

static function Toggle( position:Rect , value:boolean , text:String):boolean

image : Texture

content:GUIContent


value : 按钮开关的状态



ToolBar 控件

ToolBar控件适用于绘制一组按钮,在这些按钮中同时只激活—个,可以用来制作工具栏

static function Toolbar( position:Rect , selected:int ,texts:String[]):int

  images:Texture[]

  content:GUIContent[]

+style:GUIStyle


selected : 当前选择按钮的序号

返回 int

var toolbarInt : int = 0;

var toolbarStrings : String[] = { "Toolbar1" , "Toolbar2" , "Toolbar3"};

function OnGUI()

{

toolbatInt = GUI.Toolbar(Rect(25,25,250,30),toolbarInt,toolbarStrings);

}


Slider 控件

滑动条slider是一种很常用的界面元素,可用在音量调整、进度显示、数值调整的CUI界面中。

static function HorizontalSlider( position : Rect , value : float , leftvalue :float , rightvalue:float

slider:GUIStyle , thumb:GUIStyle):float


static function VerticalSlider( position:Rect,value:float,topvalue:float,bottomvalue:float):float


static function VerticalSlider(position:Rect,value:float,topValue:float,bottimvalue:float,slider:GUIStyle,thumb:GUIStyle):float


topValue :滑动条顶部对应的数值

bottomValue : 滑动条底部对应的数值

value : 滑动条的值与滑块对应

leftValue :滑动条左侧对应的数值

rightValue :滑动条右侧对应的数值

slider  拖动区域的GUIStyle样式

thumb : 滑块的GUIStyle样式

返回值为 float


var hSliderValue : float = 0.0 //水平滑动条数值

var vSliderValue : float = 0.0 //垂直滑动条数值


function OnGUI()

{

hSliderValue=GUI.HorizontalSlider( Rect(50,25,100,30),hSliderValue,0.0,10.0);

GUI.Lable( Rect(25,22,100,30),hSliderValue.ToString("0.00"));//显示水平滑动条数值

vSliderValue = GUI.VerticalSlider(Rect(25,70,30,100),vSliderValue,0.0,10.0);

GUI.Lable(Rect(22,170,100,30),vSliderValue.ToString("0.00"));

}


Scrollbar 控件

滚动条scrollbar常用于页面区域的滚动,例如文档浏览中

在Unity中scrollbar控件分为水平和垂直2种,对应的GUI函数为Horizontascrolibar和VerticalScrollbar;

static function HorizontalScrollbar( position:Rect,Value:float,size:float,leftValue:float,rightValue:float):float;

static function HorizontalScrollbar(position:Rect,value:float,size:float,leftValue:float,rightValue:float,style:GUIStyle):float

static function VertiacalScrollbar(....)

static function VertiacalScrollbar(....)


size:能看到的区域大小;




ScrollView 控件

ScrollView用来在GUI界面中绘制一个滚动视图区域,并且可以通过滚动条来控制要显示的区域内容。



Window窗口

如果想让窗口可拖动,在绘制函数中调用DragWindow函数可以设置窗口的拖动位置。

static function Window(id:int ,clientRect:Rect,func:WindowFunction,text:String):Rect

static function Window(id:int ,clientRect:Rect,func:WindowFunction,content:GUIContent):Rect

+style:GUIStyle

id : 每个窗口的唯一ID,用于接口函数调用

clientRect : 窗口在屏幕上的显示区域,窗口控件在该区域内绘制

func :绘制窗口控件所调用的函数,该函数需要传入窗口ID

text :窗口标题

image:窗口上显示的图片




GUILayout 自动布局

在Unity中GUI控件的布局方式有两种,一种为固定布局,即在绘制控件的时
候将位置参数传入,指定控件的精确位置,到目前为止本章前面的示例中都是使
用固定布局的方式;GUI还支持控件的自动布局,自动布局适用于控件数
量动态改变的情况,或者是有时候开发耆不太在乎控件的精确位置,而只是想让
它们按一些简单方式显示出来就好。


如果想使用自动布局,那么需要使用CUlLayout类来替代前面例子中使用的
CUi类,并旦去掉Rect()位置参数。


GUILayout.Button ("I am a Layout Button");





区域 Area

主要是针对自动布局的可以规定布局的范围使用GUILayout.BeginArea 和 GUILayout.EndArea

GUILayout.Button("I am not inside an Area");

GUILayout.BeginArea(Rect(Screen.width/2,Screen.height/2,300,300));

GUILayout.Button("I am completely inside an Area");

GUILayout.EndArea();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值