http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii
类方法
◆ static function BeginGroup(GroupName : string) : void
◆ static function BeginLayoutGroup(style : GUIStyle, options : GUILayoutOption[], LayoutType : System.Type) : GUILayoutGroup
描述:普通的辅助函数 – 当创建一个布局组的时候使用这个。它将确保所有的事情都正确的排列。
style : 组选项的风格
option : 使用的布局选项
LayoutType : 创建的布局组的类型
◆ static function EndGroup(groupName : string) : void
◆ static function GetAspectRect(aspect : float) : Rect
◆ static function GetAspectRect(aspect : floar, style : GUIStyle) : Rect
◆ static function GetAspectRect(aspect : float, params options : GUILayoutOption[]) : Rect
◆ static function GetAspectRect(aspect : float, style : GUIStyle, params options: GUILayoutOption[]) : Rect
参数
aspect 这个元素的宽高比(宽/高)
style 一个可选的风格。如果指定风格的padding将被添加到返回举行的尺寸并且这个风格的margin将被用于间距。
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由Style定义的设置。参见GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 控制的矩形
描述:用一个制定的宽高比获取一个矩形。
◆ static function GetRect(content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : Rect
参数
content 让出空间所显示的内容
style用于布局的GUIStyle
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILAyout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回Rect – 一个足够大的矩形区域用来包含用/style/渲染时的/content/。
描述:获取一个以特定风格显示内容的矩形。
◆ static function GetRect(width : float, height : float) : Rect
◆ static function GetRect(width : float, height : float, params options : GUILayoutOption[]) : Rect
◆ static function GetRect(width : float, height : float, style : GUIStyle, params options : GUILayoutOption[]) : Rect
参数
width 你想要的区域的宽度
height 你想要的区域的高度
style 用了布局的可选GUIStyle,如果指定,风格的padding将被添加到尺寸并且它的margin将被用于间距
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 用于放置控件的矩形
描述:用一个固定的内容区域获取一个矩形
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight : float) : Rect
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight : float, style : GUIStyle) : Rect
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight : float, params options : GUILayerOption[]) : Rect
◆ static function GetRect(minWidth : float, maxWidth : float, minHeight : float, maxHeight : float, style : GUIStyle, paramas option : GUILayoutOption[]) : Rect
参数
minWidth 传回区域的最小宽度
maxWidth 传回区域的最大宽度
minHeight 传回区域的最小高度
maxHeight 传回区域的最大宽度
style 一个可选的风格。如果指定,风格的padding将被添加到尺寸并且它的margin将被用于间距
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 一个矩形区域在两个轴上的尺寸介于minWidth和maxWidth之间
描述:从布局系统获取一个可扩展的矩形,矩形的尺寸将在min和max值之间。
GUILayout
类
GUILayout是用于UnityGUI自动布局的类。
参见:GUI Layout tutoria
类方法
◆ static function BeginArea(screenRect : Rect) : void
◆ static function BeginArea(screenRect : rect, text : string) : void
◆ static function BeginArea(screenRect : Rect, image : Texture) : void
◆ static function BeginArea(screenRect : Rect, content : GUIContent) : void
◆ static function BeginArea(screenRect : Rect, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, text : string, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, image : Texture, style : GUIStyle) : void
◆ static function BeginArea(screenRect : Rect, content : GUIContent, style : GUIStyle) : void
参数
text可选的显示在该区域中的文本
image 可选的显示在该区域中的纹理
content 可选的在该区域顶部显示的文本,图片和提示
style 使用的风格。如果留空,空的GUIStyle(GUIStyle.none)将被使用,给出一个透明的背景。参见:EndArea
描述:在屏幕的固定区域开始一个GUI空间的GUILayout块。
默认的,任何使用GUILayout制作的GUI空间都放置在屏幕的左上角。如果你想在任一区域放置一系列自动布局的控件,使用GUILayout.BeginArea定义一个新的区域以便自动布局系统可以使用它。
function OnGUI()
{
GUILayout.BeginArea(Rect(200, 200, 100, 100));
GUILayout.Button(“Click me”);
GUILayout.Button(“Or me”);
GUILayout.EndArea();
}
在混合GUILayout代码是这个函数是非常有用的。必须与EndArea调用匹配。BeginArea / EndArea不能嵌套。
◆ static function BeginHorizontal(params options : GUILayoutOption[]): void
◆ static function BeginHorizontal(style : GUIStyle, params options : GUILayoutOption[]): void
参数
style这个风格用于背景图片和填充值。如果留空,背景是透明的。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这个设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
描述:开始一个水平控件组。
所有在这个元素内部渲染的空间将被一个接一个的水平放置,改组必须调用EndHorizontal关闭。
◆ static function BeginScrollView(scrollPosition : Vector2, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, style : GUIStyle) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle, params options : GUILayoutOption[]) : Vector2
◆ static function BeginScrollView(scrollPosition : Vector2, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle, background : GUIStyle, params options : GUILayoutOption[]) : Vector2
参数:
scrollPostion 用来显示的位置
alwaysShowHorizontal 可选的参数用来总是显示水平滚动条。如果为假或者留空,它将只在ScrollView中的内容比滚动视宽时显示。
alwaysShowVertical 可选的参数用来总是显示垂直滚动条。如果为假或者留空,它将只在ScrollView中的内容比滚动视高时显示。
horizontalScrollbar 用于水平滚动条的可选GUIStyle。如果不设置,将使用当前GUISkin的horizontalScrollbar。
verticalScrollbar 用于垂直滚动条的可选GUIStyle。如果不设置,将使用当前GUISken的verticalScrollbar风格。
返回Vector2 – 修改过的scrollPosition。回传这个变量,如下的例子:
描述:开始一个自动布局滚动视。
自动布局滚动视,将使用任何你放置在它们中的内容并正常显示出来。如果他不适合,将显示滚动条,BeginScrollView的调用总是与EndScrollView的调用匹配。
//这个变量对于空间来说就是这个滚动视查看子元素的位置。
var scrollPosition : Vector2;
//显示在滚动视中的字符串,下面两个按钮添加,清除这个字符串。
var longString = “This is a long-ish string”;
function OnGUI()
{
//开始一个滚动视,所有矩形被自动计算。
//它将使用任何可用的空间并确保内容排列正确
//这是小的最后两参数来强制滚动条出现
scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(100), GUILayout.Height(100));
//添加一个简单的标签到滚动视内部。注意
//滚动条如何与文字换行正确的工作。
GUILayout.Height(longString);
//添加一个按钮来消除字符串。这个是在滚动区域内部,因此它
//也将被滚动。注意按钮如何变窄为垂直滚动条留出空间
if(GUILayout.Button(“Clear”)
longString = “”;
//结束我们上面开始的滚动条
GUILayout.EndScrollView();
//现在我们在滚动视外边添加一个按钮 – 这将显示在滚动区域的下边
if(GUILayout.Button(“Add MoreText”))
{
longString += “\nHere is another line.”;
}
◆ static function Box(params option : GUILayoutOption[]) : void
◆ static function Box(style : GUIStyle, params option : GUILayoutOption[]) : void
参数
style 这个风格将用于背景图片和填充值,如果留空,背景是透明的。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:开始一个垂直控件组。
所有在这个元素内部渲染的空间将被一个接一个地垂直放置。改组必须调用EndVertical关闭。
◆ static function Box(image : Texture, params option : GUILayoutOption[]) : void
◆ static function Box(text : string, params option : GUILayoutOption[]) : void
◆ static function Box(contend : GUIContent, params option : GUILayoutOption[]) : void
◆ static function Box(image : Texture, style : GUIStyle, params option : GUILayoutOption[]) : void
◆ static function Box(text : string, style : GUIStyle, params option : GUILayoutOption[]) : void
◆ static function Box(contend : GUIContent, style : GUIStyle, params option : GUILayoutOption[]) : void
参数
text 显示在该box上的文本
image显示在该box上的Texture
content用于这个box的文本,图形和提示
style 使用的风格。如果不设置,将使用当前的GUISkin的box风格。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:制作一个自动布局box
这将制作一个实心box,如果你想制作一个包含一些内容的box,使用一个子组函数的
风格参数(BeginHorizontal, BeginVertical, 等等)
◆ static function Button(image : Texture, params options : GUILayoutOption[]) : bool
◆ static function Button(text : string, params options : GUILayoutOption[]) : bool
◆ static function Button(content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function Button(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Button(text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Button(content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : bool
参数
text 显示在该按钮上的文本
image显示在该按钮上的Texture
content用于这个按钮的文本,图形和提示。
style 使用的风格。如果不设置,将使用当前的GUISkin的button风格。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回bool – true当用户单击按钮时。
描述:制作一个简单的按钮,用户点击它们的时候就会有事情发生。
◆ static functioin EndArea() : void
描述:关闭由BeginArea开始的GUILayout块
◆ static function EndHorizontal() : void
描述:关闭一个开始于BeginHorizontal的组
◆ static functioin EndScrollView() : void
描述:结束由BeginScrollView调用开始的滚动视。
◆ static functioin EndVertical() : void
描述:关闭一个开始于BeginVertical的组
◆ static functioin ExpandHeight(expand : bool) : GUILayoutOption
描述:传递给一个空间的选项来允许或不允许垂直扩展。
◆ static functioin ExpandWidth(expand : bool) : GUILayoutOption
描述:传递给一个空间的选项来允许或不允许水平扩展。
◆ static functioin FlexibleSpace() : void
描述:插入一个灵活的空格元素
灵活的空格用来填充一个布局中任何遗漏的空间。
◆ static functioin Height(height : float) : GUILayoutOption
描述:传递给空间的选项以便给它一个绝对高度。
◆ static functioin HorizontalScrollbar(value : float, size : float, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static functioin HorizontalScrollbar(value : float, size : float, leftValue : float, rightValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float
参数
value在min和max之间的位置
size 能看见多大?
leftValue滚动条左端的值
rightValue 滚动条右端的值
style 用于滚动条背景的风格。如果不设置,将使用当前GUISkin的horizontalScrollbar
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight
返回floar – 修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来改变。
描述:一个水平滚动条。滚动条可以用来滚动文档。大多数情况下,你会使用滚动视代替。
找到额外的元素:
在滚动条两端的按钮将在当前皮肤中搜索“leftButton”和“rightButton”作为风格,滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。
//这将使用下面的风格名来决定该按钮的尺寸/位置
//MyScrollbarleftButton - 用于左侧按钮的风格位置
//MyScrollbarrightButton - 用于右侧按钮的风格位置
//MyScrollbarthumb - 用于滑块的风格名称
scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, “MyScrollbar”);
◆ static functioin HorizontalSlider(value : float, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static functioin HorizontalSlider(value : float, leftValue : float, rightValue : float, slider : GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float
参数
value滑块显示的值。这个决定可拖动滑块的位置。
leftValue滑杆左端的值。
rightValue 滑杆右边的值。
slider用于显示拖动区域的GUIStyle。如果不设置,将使用当前GUISkin的horizontalSlider。
thumb 用于显示拖动块的GUISkin。如果不设置,将使用当前的GUISkin的horizontalSliderThumb
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回float – 被用户设置的值。
描述:一个用户可以拖动的滑杆。可以在min和max之间取一个值。
◆ static function Label(image : Texture, params options : GUILayoutOption[]) : void
◆ static function Label(text : string, params options : GUILayoutOption[]) : void
◆ static function Label(content : GUIContent, params options : GUILayoutOption[]) : void
◆ static function Label(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : void
◆ static function Label(text : string, style : GUIStyle, params options : GUILayoutOption[]) : void
◆ static function Label(content: GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : void
参数
text 显示在该标签上的文本。
image显示在标签上的Texture。
content用于这个标签的文本,图形和提示。
style 使用的风格。如果不设置。将使用当前GUISkin的label。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
描述:制作一个自动布局label
标签没有用户交互。不会获取鼠标点击并总是以普通风格渲染。如果你想制作一个可视化响应用户输出的控件,使用一个Box控件。
◆ static function MaxHeight(maxHeight : float) : GUILayoutOption
描述:传递给控件的选项来指定一个最大高度。
◆ static function MaxWidth(maxWidth : float) : GUILayoutOption
描述:传递给控件的选项来指定一个最大宽度。
◆ static function MinHeight(minHeight : float) : GUILayoutOption
描述:传递给控件的选项来指定一个最小高度。
◆ static function MinWidth(minWidth : float) : GUILayoutOption
描述:传递给控件的选项,来指定一个最小宽度
◆ static function PasswordField(password : string, maskChar : char, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string, maskChar : char, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string, maskChar : char, style : GUIStyle, params options : GUILayoutOption[]) : string
◆ static function PasswordField(password : string, maskChar : char, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
参数
password 用于编辑的密码。这个函数返回值应该被赋回这个字符串。如下的例子。
maskChar 用来隐藏密码的字符。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style 使用的风格。如果不设置,将使用当前GUISkin的textField风格。
返回string – 编辑过的密码。
描述:制作一个用户可以输入密码的文本域。
var passwordToEdit = “My Password”;
function OnGUI()
{// 制作一个密码与来调整stringToEdit。
passwordToEdit = GUILayout.PasswordField(passwordToEdit, “*”, 25);
}
◆ static function RepeatButton(image : Texture, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(text : string, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function RepeatButton(content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : bool
参数
text显示在该按钮上的文本。
image 显示在该按钮上的Texture。
content 用于这个按钮的文本,图形和提示。
style使用的风格,如果不设置,将使用当前GUISkin的button风格。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回bool - /true/当用户按住按钮时
描述:制作一个重复按钮,只要用户按住鼠标这个按钮一直返回真。
◆ static function SeletionGrid(selected : int, texts : string[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, images : Texture[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, contents : GUIContent[], xCount : int, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, texts : string[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, images : Texture[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function SeletionGrid(selected : int, contents : GUIContent[], xCount : int, style : GUIStyle, params options : GUILayoutOption[]) : int
参数
selected选择按钮的索引
texts 显示在按钮的字符串数组。
images在按钮上纹理数组
contents用于按钮的文本,图形和提示。
xCount 在水平方向多少个元素,元素将被缩放来适应,除非风格定义了一个fixedWidth,空间高度将由元素的数量决定。
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回int – 选择按钮的索引
描述:制作一个选择网格
◆ static function Space(pixel : float) : void
描述:在当前布局组中插入一个空格
空格的方向依赖与使用这个命令时当前所在布局组。如果在垂直组,空格是垂直的。
function OnGUI()
{
GUILayout.Button(“I’m the first button”);
//在两个按钮间插入20像素
GUILayout.Space(20);
}
GUILayout.Button(“I’m a bit futher down”);
}
在水平组,pixels将是水平的;
function OnGUI()
{
//开始水平组以便显示水平空格
GUILayout.BeginHorizontal(“box”);
GUILayout.Button(“I’m the first button”);
//在两个按钮间插入20像素
GUILayout.Space(20);
GUILayout.Button(“I’m to the right”);
//结束上面开始的水平组
GUILayout.EndHorizontal();
}
◆ static function TextArea(text : string, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, style : GUIStyle, params options : GUILayoutOption[]) : string
◆ static function TextArea(text : string, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
参数
text 用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style 使用的风格。如果不设置,则使用当前GUISkin的textField风格。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回string – 编辑过的字符串。
描述:制作一个多行文本域。这里用户可以编辑这个字符串。
◆ static function TextField(text : string, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, maxLength : int, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, style:GUIStyle, params options : GUILayoutOption[]) : string
◆ static function TextField (text : string, maxLength : int, style : GUIStyle, params options : GUILayoutOption[]) : string
参数
text 用于编辑的文本。这个函数返回值应该被赋回这个字符串,如下的例子。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style 使用的风格。如果不设置,将使用当前的GUISkin的textArea
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回string – 编辑过的字符串。
描述:制作一个单行文本域。这里用户可以编辑这个字符串。
var stringToEdit = “Hello, world”;
function OnGUI()
{
//制作一个文本域来调整stringToEdit
stringToEdit = GUILayout.TextField(stringToEdit, 25);
}
◆ static function Toogle(value : bool, image : Texture, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, text : string, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, content : GUIContent, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, image : Texture, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, text : string, style : GUIStyle, params options : GUILayoutOption[]) : bool
◆ static function Toogle(value : bool, content : GUIContent, style : GUIStyle, params options : GUILayoutOption[]) : bool
参数
value按钮是打开或关闭
text 显示在该按钮上的文本
image显示在该按钮上的Texture
content用于这个按钮的文本,图形和提示
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回bool – 按钮的新值
描述:制作一个on/off开关按钮。
◆ static function Toolbar(selected: int, texts : string[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, images : Texture[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, contents: GUIContent[], params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, texts : string[], style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, image : Texture[],style : GUIStyle, params options : GUILayoutOption[]) : int
◆ static function Toolbar(selected: int, content : GUIContent[],style : GUIStyle, params options : GUILayoutOption[]) : int
参数
selected选择按钮的索引
texts 显示在按钮上的字符串数组
images在按钮上的纹理数组
contents用于按钮的文本,图形和提示数组
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回int – 选择按钮的索引
描述:制作一个工具栏
◆ static function VerticalScrollbar(value: float, size : float, topValue : float, buttomValue : float, params options : GUILayoutOption[]) : float
◆ static function VerticalScrollbar(value: float, size : float, topValue : float, buttomValue : float, style : GUIStyle, params options : GUILayoutOption[]) : float
参数
value在min和max之间的位置
size 能看见多大?
topValue滚动条顶端的值
bottomValue 滚动条底端的值
style 用于滚动条背景的风格。如果不设置,将使用当前GUISkin的horizontalScrollbar。
options 一个可选的布局选项的列表。它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回float – 修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来改变。
描述:制作一个垂直滚动条。滚动条可以用来滚动文档。大多数情况下,你会使用scollView代替。
找到额外的元素:
在滚动条两端的按钮将在当前皮肤中搜索“upbutton”和“downbutton”作为风格。滚动条的滑块(你拖动的东西)将搜索并使用名为thumb的风格。
//这将使用下面的风格名来决定该按钮的尺寸/位置
//MyVerticalScrollbarupbutton – 用于顶端按钮的风格名称
//MyVerticalScrollbardownbutton – 用于底端按钮的风格名称
//MyScrollbarthumb – 用于滑块的风格名称
scrollPos = GUILayout.HorizontalScrollbar(scrollPos, 1, 0, 100, “MyVerticalScrollbar”);
◆ static function VerticalSlider(value : floar, leftValue : float, rightValue : float, params options : GUILayoutOption[]) : float
◆ static function VerticalSlider(value : floar, leftValue : float, rightValue : float, slider : GUIStyle, thumb : GUIStyle, params options : GUILayoutOption[]) : float
参数
value滑杆显示的值。这个决定可拖动滑块的位置。
topValue滑杆顶端的值。
downValue 滑杆底端的值。
slider 用于显示拖动区域的GUIStyle。如果不设置,将使用当前GUISkin的horizontalSlider。
thumb 用于显示拖动块的GUIStyle。如果不设置,将使用当前的GUISkin的horizontalSliderThumb。
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
◆ static function Width(width : float) : GUILayoutOption
描述:传递给控件的选项以便给它一个绝对宽度
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text : string) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image : Texture) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, content : GUIContent) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, text : string, style : GUIStyle) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, image : Texture, style : GUIStyle) : Rect
◆ static function Window(id : int, screenRect : Rect, func : GUIWindowFunction, content : GUIContent, style : GUIStyle) : Rect
参数
id 用于每个窗口唯一的ID。这是用于接口的ID。
clientRect 屏幕上用于窗口的矩形区域。布局系统将试图使窗体在他内部。如果不能,它将调整矩形去适应它
func 在窗体内部创建GUI的函数。这个函数必须使用一个函数 – 当前创建GUI的窗体id。
image 用于在标题栏上显示图片的Texture。
content 用于这个窗口的文本,图形和提示。
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
options 一个可选的布局选项的列表,它用来指定额外的布局属性。任何在这里设置的值将覆盖由style定义的设置。
参见:GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
返回Rect – 窗口位于举行位置。这个可能与你传入的一个具有不同位置和尺寸。
描述:制作一个弹出窗口。它的内容是自动布局的。
窗口浮动在普通GUI控件之上。具有单击激活的特点并可以有选择的随意被用户拖动。不像其他的控件,你需要传递给他们一个独立的功能并放置在窗口中这儿是一个小例子来帮助你开始:
var windowRect = Rect(20, 20, 120, 50);
function OnGUI()
{
//注册窗口,注意第三个参数
windowRect = GUILayout.Window(0, windowsRect, DoMyWindow, “My Window”);
}
//制作窗口内容
function DoMyWindow(windowed : int)
{
//这个按钮将调整以适应物体
if(GUILayout.Button(“Hello World”))
print(“Get a click”);
}
你传入的客户区域只是作为一个参考,为了对窗口使用额外的限制。闯入一些额外的布局选项。用在这里的一个将覆盖尺寸的计算。这是一个简单的例子。
var windowRect = Rect(20, 20, 120, 50);
function OnGUI()
{
//注册窗口,这里我们指示布局系统必须使窗体为100像素宽。
windowRect = GUILayout.Window(0, windowRect, DoMyWindow, “My Window”, GUILayout.width(100));
}
//制作窗体内容
function DoMyWindow(windowID : int)
{
//这个按钮大小不能适应这个窗体
//通常,这个窗体将被扩展以便适应这个按钮。但是由于GUILayout.Width将只允//许窗体为100像素宽
if(GUILayout.Button(“Please click me a lot”))
print(“Get a click”);
}
GUISettings
类
用于GUI如何表现的通用设置。
这些被所有在GUISkin中的元素共享。
变量
◆ var cursorColor : Color
描述:文本域中光标的颜色。
◆ var cursorFlashSpeed : float
描述:文本域指示的闪动速度。
这个是闪动/秒。如果设置为0,闪动将被禁用。如果设置为-1,闪动速度将匹配系统的默认速度。
◆ var doubleClickSelectsWord : bool
描述:文本域中双击是否选择单词。
◆ var selectionColor : Color
描述:文本域中选择矩形的颜色。
◆ var tripleClickSelectsLine : bool
描述:文本域中点击鼠标三次是否选择整行文本。
GUIStyleState
类
为GUIStyle物体使用的给定状态的一个特定值。
GUIStyle包含用于显示GUI元素的所有值
变量
◆ var background : Texture2D
描述:在这个状态中被GUI元素使用的背景图片。
◆ var textColor : Color
描述:在这个状态中被GUI元素使用的文本颜色。
GUIStyle
类
GUI元素的风格位置
这个类包含一个GUI元素如何被渲染的所有信息。它包含用于字体,图标位置,背景图标,和间距的信息。它不包含关于它包含什么的信息 – 仅仅定义用这个风格渲染的文本如何被显示。它不定义这个元素可以发生什么交互,但是定义了用于交互的显示设置。
一个GUIStyle的设置。这是模仿一个CSS样式。它包含下列事项的设置:
背景图片
这些被渲染在空间后面。不同的图像可以被指定为正常显示。当用户将鼠标放在元素上时的显示,当使用者按下选择 – 以及当元素被打开,如触发按钮,下面的这些都被称为风格的状态。参见:normal, hover, active, onNormal, onHover, onActive – 这些包含每个状态的背景图片,文本颜色属性。
文本渲染
这个风格都可以定义一个字体渲染,以及文本对齐,换行和剪裁的设置,它也定了该风格元素不同状态的文本颜色参考 : font, alignment, wordWrap, normal, hover, active, onHover, onActive
图标位置
GUIStyle可以渲染文本,图标或者两者兼而有之。GUIStyle定义渲染时这两者间的相关位置(这可以强制它只显示他们其中之一)。参见:imagePosition
尺寸和间距选项
GUIStyle包含填充,边缘和边界。这些不严格地对应类似命名的CSS属性。一个GUIStyle可以选择的定义一个固定的宽度和高度。参见:margin, padding, border, fixedWidth, fixedHieght
变量
◆ var active : GUIStyleState
描述:空间被按下时的渲染设置。
◆ var alignment : TextAnchor
描述:文本对齐
◆ var border : RectOffset
描述:所有背景图片的边界。
这个对应于GUITexture的边界设置。它只影响渲染的背景图像,不影响定位。
◆ var clipOffset : Vector2
描述:用于该GUIStyle内容的剪裁偏移。
◆ var clipping : TextClipping
描述:当渲染的内容相对于给定的区域太大时做什么
◆ var contentOffset : Vector2
描述:用于该GUIStyle内容的像素偏移。
◆ var fixedHeight : float
描述:如果非0,任何用这个风格渲染的GUI元素将有这里指定的高度。
◆ var fixedWidth : float
描述:如果非0,任何用这个风格渲染的GUI元素将有这里指定的宽度。
◆ var focused : GUIStyleState
描述:元素获得键盘焦点时的渲染设置。
◆ var font : Font
描述:用于渲染的字体。如果null,当前的GUISkin的默认字体将被使用。
◆ var hover : GUIStyleState
描述:鼠标悬停在控件时的渲染设置。
◆ var imagePosition : ImagePosition
描述:GUIContent的图片和文本如何组合。
◆ var lineHeight : float
描述:这个风格一行文本的高度。以像素为单位。(只读)
◆ var margin : RectOffset
描述:以这种风格渲染的元素和任何其他GUI元素之间的边界。
这个只影响自动布局。(参见 : GUILayout)
◆ var name : string
描述:GUIStyle的名称。用来基于名称获取它们。
◆ var normal : GUIStyleState
描述:组建正常显示是渲染设置。
◆ var onActive : GUIStyleState
描述:元素被打开并具有键盘焦点时的渲染设置。
◆ var onFocused : GUIStyleState
描述:元素被打开并被按下时的渲染设置。
◆ var onHover : GUIStyleState
描述:控件被打开并且鼠标悬停在它上面时的渲染设置
◆ var onNormal : GUIStyleState
描述:控件被打开时的渲染设置。
◆ var overflow : RectOffset
描述:添加到背景图片的额外间距。
这可用于如果你的图片要投射一个阴影,并且向扩展背景图片超出使用这个风格的制定GUI元素的矩形时。
◆ var padding : RectOffset
描述:从GUIStyle边界到内容开始的间距
◆ var stretchHeight : bool
描述:这个风格的GUI元素可以被垂直拉伸以便更好的布局么?
◆ var stretchWidth : bool
描述:这个风格的GUI元素可以被水平拉伸以便更好的布局么?
◆ var wordWrap : bool
描述:文本换行?
这将导致任何包含的文本被换行以便适应控件的宽度。
构造函数
◆ static function GUIStyle() : GUIStyle
描述:
◆ static function GUIStyle(other:GUIStyle) : GUIStyle
描述:
函数
◆ function CalcHeight(content : GUIContent, width : float) : float
描述:当渲染content并制定width时这个元素的高度。
◆ function CalcMinMaxHeight (content : GUIContent, outminWidth : float, outmaxWidth : float) : void
描述:计算以这个风格渲染的content的最大最小宽度。
被GUILayout使用来正确处理换行。
◆ function CalcScreenSize(contentSize : Vector2) : Vector2
描述:计算用这个风格格式化的元素的尺寸,和一个给定的内容空格。
◆ function CalcSize(content : GUIContent) : Vector2
描述:如果内容使用这个风格渲染,计算某些内容的尺寸。
这个函数不考虑换行。要做到这点,你需要确定宽度,然后打调用CalcHeight分配计算出wordwrapped高度。
◆ function Draw(position : Rect, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
描述:
◆ function Draw(position : Rect, text : string, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
描述:用GUIStyle绘制一个文本字符串。
◆ function Draw(position : Rect, image : Texture, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
描述:用GUIStyle绘制图片。如果图片太大,它将被缩小。
◆ function Draw(position : Rect, content : GUIContent, isHover: bool, isActive : bool, on : bool, hasKeyboardFocus : bool) : void
描述:用GUIStyle绘制文本和图片。如果图片太大,它将被缩小。
◆ function Draw(position : Rect, content : GUIContent, controlID : int, on : bool = false) : void
描述:GUI代码中使用的主要绘制函数。
◆ function DrawCursor(position : Rect, content : GUIContent, controlID : int, Character : int) : void
描述:用选定的内容绘制这个GUIStyle
◆ function DrawWithTextSelection(position : Rect, content : GUIContent, controlID : int, firstSelectedCharacter : int, lastSelectedCharacter : int) : void
描述:用选定的内容绘制这个GUIStyle
◆ function GetCursorPixelPosition(position : Rect, content : GUIContent, cursorStringIndex : int) : Vector2
描述:获取给定字符串索引的像素位置。
◆ function GetCursorStringIndex(postion : Rect, content : GUIContent, cursorPixelPosition : Vector2) : int
描述:当用户在cursorPixelPosition处点击时获取光标位置(索引到内容文本)这部计算内容中任何图片。
类变量
◆ static var none : GUIStyle
描述:空GUIStyle的快捷方式。
这个风格不包含装饰而仅仅以缺省字体渲染所有东西。
function OnGUI()
{ //制作一个没有装饰的按钮
GUI.Button(“I’m very bare”, GUIStyle.none);
}
类方法
◆ static implicit function GUIStyle(str : string) : GUIStyle
描述:从当前皮肤获取一个名为GUI风格。
GUIUtility
类
用于制作新GUI空间的工具类。
除非从头开始创建自己的GUI控件,否则你不需要使用这些函数。
类变量
◆ static var hotControl : int
描述:当前具有特点的控件controlID。
热点空间是临时激活的一个控件。当用于在一个按钮上按下鼠标时,它变为热点。当一个控件具有热点时,其他控件不允许响应鼠标事件。一旦用户鼠标示范,这个控件设置hotControl为0以便表明其他控件可以响应用户输入。
◆ static var keyboardControl : int
描述:具有键盘焦点控件的controlID。
类方法
◆ static function GetControlID(focus : FocusType) : int
◆ static function GetControlID(hint : int, focus : FocusType) : int
◆ static function GetControlID(content : GUIContent, focus : FocusType) : int
描述:为一个控件获取唯一ID。
◆ static function GetControlID(focus : FocusType, position : Rect) : int
◆ static function GetControlID(hint : int, focus : FocusType, position : Rect) : int
◆ static function GetControlID(content : GUIContent, focus : FocusType, position : Rect) : int
描述:为一个控件获取唯一ID。
◆ static function GetStateObject(t : type, controlID : int) : object
描述:从一个controlID获取一个状态对象。
这将返回一个可重用的状态对象,它的controlID是唯一的。如果没有,一个新的将被创建并添加到ControlID。
◆ static function GUIToScreenPoint(guiPoint : Vector2) : Vector2
描述:将一个点从GUI位置转化为屏幕空间。
参见:GUIUtility, ScreenToGUIPoint
◆ static function MoveNextAndScroll(forward: bool) : void
描述:只允许从OnGUI内部调出GUI函数
◆ static function QueryStateObject(t: Type, controlID : int) : object
描述:从一个controlID获取一个存在的状态物体。
这个返回一个可回收的状态物体。这个物体具有唯一的controlID。如果没有,这个函数将返回null。
◆ static function RotateAroundPivot(angle: float, pivotPoint : Vector2) : void
描述:使GUI围绕一个点旋转的辅助函数。
修改GUI.matrix来绕着pivotPoint旋转所有的GUI元素angel度。
参见:GUI.matrix, ScaleAroundPivot
◆ static function ScaleAroundPivot(scale: Vector2, pivotPoint: Vector2) : void
描述:使GUI围绕一个点缩放的辅助函数。
修改GUI,.matrix来绕着pivotPoint缩放所有的GUI元素angel度。
参见:GUI.matrix, RotateAroundPivot
◆ static function ScreenToGUIPoint(screenPoint : Vector2) : object
描述:将一个点从屏幕空间转化为GUI位置。
用于反转计算GUIToScreenPoint的值。
参见:GUIUtility.GUIToScreenPoint。
GUI
类
GUI类是Unity GUI的手工定位接口
参见:GUI tutorial
类变量
◆ static var backgroundColor : Color
描述:全局的修改由GUI渲染的所有元素的背景颜色。
这个获取多个color。
参见:contentColor, color
◆ static var changed : bool
描述:有任何控件的输入数据改变吗?
◆ static var color : Color
描述:全局的修改GUI颜色。
这将影响背景和文本颜色。
参见:backgroundColor, contentColor
◆ static var contentColor : Color
描述:修改由GUI渲染的所有文本的颜色。
这个获取多个color。
参见:backgroundColor : Color
◆ static var depth : int
描述:当前执行的GUI行为的排序深度
当你有不同的脚本同时运行时。设置这个来决定顺序。
◆ static var enabled : bool
描述:GUI启用了?
设置这个值为假将禁用所有GUI交互。所有的控件将以半透明方式绘制。并将不响应用户输入。
//这个值跟踪扩展的选项是否可以被打开。
var allOptions = true;
//两个扩展选项
var extended1 = true;
var extended2 = true;
function OnGUI()
{
//制作一个开关控件以便允许用户编辑扩展的选项
allOptions = GUI.Toogle(Rect(0, 0, 150, 20), allOptions, “Edit All Options”);
//将它的值赋给GUIEnabled – 如果上面的复选框被禁用
//这些GUI元素将
GUIenabled = allOptions
//这两个控件只在上面的按钮为On时启用。
extended1 = GUI.Toogle(Rect(20, 20, 130, 20), extended1, “Extended Option 1”);
extended2 = GUI.Toogle(Rect(20, 40, 130, 30), extended2, “Extended Option 2”);
//使用条件语句,以使GUI代码可以再次启用
GUI.enabled = true;
//制作一个OK按钮
if(GUI.Button(Rect(0, 60, 150, 20), “OK”))
print(“user clicked ok”);
}
◆ static var matrix : Matrix4x4
描述:GUI变换矩阵
◆ static var skin : GUISkin
描述:使用的全局皮肤
你可以在任何时候设置这个来改变GUI的外观。如果设置为null,这个皮肤将使用默认的Unity皮肤。
◆ static var tooltip : string
描述:鼠标移动到空间上的提示信息(只读)。
创建GUI空间是。你可以给他传递一个提示。这可以通过改变内容参数来制作一个自定义GUIContent物体,而不是仅仅传递一个字符串。
但鼠标经过带有提示性的控件时,它设置全局的GUI.tooltip值为传入得知。在OnGUI代码的末端,你可以制作一个标签来显示GUI.tooltip的值。
function OnGUI()
{
//制作一个按钮,它使用自定义GUI.Content参数来传递提示。
GUI.Button(Rect(10, 10, 100, 20), GUIContent(“Click me”, “This is the tooltip”));
//显示鼠标指向或具有键盘焦点的控件提示
GUI.Button(Rect(10, 55, 100, 20), “No tooltip here”);
}
你可以使用元素的次序来创建’层次化的’提示
function OnGUI()
{
//这个box比随后的许多元素大,并且它有一个提示。
GUI.Box(Rect(5, 35, 110, 75), GUIContent(“Box”, “this box has a tooltip”));
这个按钮在box内部,但是没有提示,因此它不会覆盖这个box的提示。
GUI.Button(Rect(10, 55, 100, 20), “No tooltip here”);
这个按钮在box内部,并且有一个提示,因此它会覆盖这个box的提示。
GUI.Button(Rect(10, 80, 100, 20), GUIContent(“I have a tooltip”, “This button overrides the box”));
//最后,显示来自鼠标指向或具有键盘焦点的提示
GUI.Label(Rect(10, 40, 100, 40), GUI.tooltip);
}
Tooltip也能用来实现一个OnMouseOver/OnMouseOut消息系统:
var lastTooltip = “”;
function OnGUI()
{
GUILayout.Button(GUIContent(“Play Game”, “Button1”));
GUILayout.Button(GUIContent(“Quit”, “Button2”));
if(Event.current.type == EventType.repaint && GUI.tooltip! = lastTooltip)
{
if(lastTooltip != “”)
SendMessage(lastTooltip + “OnMouseOut”, SendMessageOptions, DontRequireReceiver);
if(GUI.tooltip != “”)
SendMessage(GUI.tooltip + “OnMouseOut”, SendMessageOptions, DontRequireReceiver);
lastTool\tip = GUI.tooltip;
}
}
类方法
◆ static function BeginGroup(position : Rect) : void
◆ static function BeginGroup(position : Rect, text : string) : void
◆ static function BeginGroup(position : Rect, image : Texture) : void
◆ static function BeginGroup(position : Rect, content : GUIContent) : void
◆ static function BeginGroup(position : Rect, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, text : string, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, image : Texture, style : GUIStyle) : void
◆ static function BeginGroup(position : Rect, content : GUIContent, style : GUIStyle) : void
参数
position屏幕用于组的矩形区域。
text 显示在该组上的文本。
image显示在该组上的Texture。
content 用于这个组的文本,图形和提示。如果提供,任何鼠标点击被组捕获,并且如果没有设置,不会渲染背景,和传递鼠标点击。
style 用于背景的风格。
描述:
开始组,必须与EndGroup调用匹配。
当你开始一个组时,用于GUI控件的坐标系统被设置为(0, 0)是组的左上角。所有控件被附加到组。组可以嵌套 – 如果使用,子被附加到他们的父。
当你在屏幕上移动一组GUI元素是这是非常有用的。一个普通的用法是设计你的菜单以适合一个特定的屏幕的尺寸。然后在更大的显示器上居中显示GUI。
function OnGUI()
{
//约束所有的绘图在屏幕中心800*600的区域
GUI.BeginGroup(new Rect(Screen.width / 2 – 400, Screen.height / 2 – 300, 800, 600));
//在由BeginGroup定义的新坐标空间中绘制一个box
//注意,现在(0,0)已经被移动了
GUI.Box(new Rect(0, 0, 800, 600), “This box is new centered! – Here you would put your main menu”);
//需要用一个EndGroup来匹配所有的BeginGroup调用。
GUI.EndGroup();
}
参见:matrix, BeginScrollView
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, alwaysShowHorizontal : bool, alwaysShowVertical : bool) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle) : Vector2
◆ static function BeginScrollView(position : Rect, scrollPostion: Vector2, viewRect : Rect, alwaysShowHorizontal : bool, alwaysShowVertical : bool, horizontalScrollbar : GUIStyle, verticalScrollbar : GUIStyle) : Vector2
参数
position 屏幕上用了ScrollView的矩形区域
scrollPosition 用来显示的位置。
viewRect 用在滚动视内部的矩形。
alwaysShowHorizontal 可选的参数用来总是显示水平滚动条。如果为假或不设置,它只在clientRect比position宽的时候显示
alwaysShowVertical 可选的参数用来总是显示垂直滚动条。如果为假或不设置,它只在clientRect比position长的时候显示。
horizontalScrollbar 用于水平滚动条的可选GUIStyle,如果不设置,将使用当前GUISkin的horizontalScrollbar.
verticalScrollbar 用于水平滚动条的可选GUIStyle,如果不设置,将使用当前GUISkin的verticalScrollbar.
返回Vector2 – 修改过的scrollPosition回传这个变量。如下的例子。
描述:在你的GUI中开始滚动视。
ScrollViews让你在屏幕上制作一个较小的区域。使用放置在ScrollView边上的滚动条来查看一个较大的区域。
//滚动视口的位置
var smallPosition = Vector2.zero;
function OnGUI()
{
//一个绝对位置的例子。制作一个具有较大区域的滚动视。
//并将它放置在一个小的矩形中。
scrollPosition = GUI.BeginScrollView(Rect(10, 300, 100, 100), scrollPosition, Rect(0, 0, 220, 200));
//制作四个按钮 – 每个角上有一个,由BeginScrollView最后一个参数定义的坐标系统。
GUI.Button(Rect(0, 0, 100, 20), “Top-left”);
GUI.Button(Rect(0, 0, 100, 20), “Top-right”);
GUI.Button(Rect(0, 0, 100, 20), “Bottom-left”);
GUI.Button(Rect(0, 0, 100, 20), “Bottom-right”);
//结束前面开始滚动视
GUI.EndScrollView();
}
◆ static function Box(position : Rect, text : string) : void
◆ static function Box(position : Rect, image : Texture) : void
◆ static function Box(position : Rect, 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屏幕上用于box的矩形区域
text 显示在该box上的文本
image显示在该box上的Texture
content用于这个box的文本,图形和提示
style 使用的风格。如果不设置,将使用当前GUISkin的box风格。
描述:制作一个图形box。
◆ static function BringWindowToBack(windowID: int) : void
参数
windowID 在window调用中创建窗体时使用的唯一标识。
描述:将特定的窗口放到浮动窗口的后面。
◆ static function BringWindowToFront(windowID: int) : void
参数
windowID 在Window调用中创建窗体时使用的唯一标识。
描述:将特定的窗口放到浮动窗口的前面。
◆ static function Button(position : Rect, text : string) : bool
◆ static function Button(position : Rect, image : Texture) : bool
◆ static function Button(position : Rect, content : GUIContent) : bool
◆ static function Button(position : Rect, text : string, style : GUIStyle) : bool
◆ static function Button(position : Rect, image : Texture, style : GUIStyle) : bool
◆ static function Button(position : Rect, content : GUIContent, style : GUIStyle) : bool
参数
position屏幕上用于按钮的矩形区域
text 显示在该按钮上的文本
image显示在该按钮上的Texture
content用于这个按钮的文本,图形和提示
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
返回bool - /true/当用户单击按钮时
描述:制作一个简单的按钮,用户点击它们的时候,就会有些事情发生。
◆ static function DragWindow(position : Rect) : void
参数
position可以拖动的窗口部分。这个被附加到实际窗口。
描述:让窗口可拖动。
插入这个函数的在你的窗口代码中使窗口可拖动。
var windowRect = Rect(20, 20, 120, 50);
function OnGUI()
{
//注册窗体
windowRect = GUI.Window(0, windowRect, DoMyWindow, “My Window");
}
//制作窗体内容
function DoMyWindows(windowID : int)
{
//制作一个非常长的矩形,高20像素。
//这将使得窗口可以调整大小,通过顶部的标题栏 – 不管它有多宽。
GUI.DragWindow(Rect(0, 0, 10000, 20));
}
◆ static function DragWindow() : void
如果你想将整个窗体背景作为一个可拖动区域,不使用参数并将DragWindow放置到整体函数的最后。
这意味着任何其他类型的控件将首先被处理并且拖动将只在没有其他控件获得焦点时使用。
◆ static function DrawTexture(position : Rect, image : Texture, scaleMode : ScaleMode = stretchToFill, alphaBlend : bool = true, imageAspect : float = 0) : void
参数
position在屏幕上绘制一个内部包含有纹理的矩形。
image需要被绘制的纹理。
scaleMode 定义了当矩形的长宽比和内部图像的长宽比不同时如何缩放图像。
alphaBlend 定义了alpha值是否参与图像的混合(默认为真)。如果为假,图像将会被绘制并显示。
imageAspect 源图像的的长宽比。如果是0(默认值),则使用图像自身的长宽比。
描述:在一个矩形内部绘制一个纹理。
参见:GUI.color, GUI.contentColor
◆ static function EndGroup() : void
描述:结束一个组
参见:BeginGroup()。
◆ static function EndScrollView : void
描述:结束一个由BeginScrollView开始的滚动视。
◆ static function FocusControl(name : string) : void
描述:把键盘焦点转移到定义的控件。
参见:SetNextControlName, GetNameOfFocusedControl。
var username = "username";
function OnGUI ()
{ // 设置一个文本域中内部名称
GUI.SetNextControlName ("MyTextField");
// Make the actual text field.
username = GUI.TextField (Rect (10,10,100,20), username);
// If the user presses this button, keyboard focus will move.
if (GUI.Button (Rect (10,40,80,20), "Move Focus"))
GUI.FocusControl ("MyTextField");
}
◆ static function FocusWindow(windowID : int) : void
参数:
windowID 当调用Window而创建的窗口的标识符。
描述:使一个窗口被激活。
参见:GUI.UnfocusWindow
◆ static function GetNameOfFocusedControl() : string
描述:返回当前激活的控件的名字。控件的名字是由SetNextControlName函数创建的。当有名字的控件被激活时,函数返回它的名字;否则的话返回一个空字符串。
var login = "username";
var login2 = "no action here";
function OnGUI ()
{
GUI.SetNextControlName ("user");
login = GUI.TextField (Rect (10,10,130,20), login);
login2 = GUI.TextField (Rect (10,40,130,20), login2);
if (Event.current.Equals (Event.KeyboardEvent ("return")) && GUI.GetNameOfFocusedControl () == "user")
{
Debug.Log ("Login");
}
if (GUI.Button (new Rect (150,10,50,20), "Login"))
Debug.Log ("Login");
}
参见:SetNextControlName, FocusControl
login2 = GUI.TextField(new Rect(10, 40, 130, 20), login2);
if(Event.current.Equals(Event.KeyboardEvent.(“return”))&&GUI.GetNameOfFocusedControl() == “user”)
Debug.log(“Login”);
if(GUI.Button(new Rect(150, 10, 50, 20), “Login”))
Debug.log(“Login”);
}
参见:SetNextControlName
◆ static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue : float, rightValue : float) : bool
◆ static function HorizontalScrollbar(position : Rect, value : float, size : float, leftValue : float, rightValue : float, style : GUIStyle) : bool
参数
position屏幕上用于滚动条的矩形区域
value在min和max之间的位置
size 能看见多大?
leftValue滚动条左边的值
rightValue 滚动条右边的值
style 用于滚动条背景的风格。如果不设置,将使用当前GUISkin的horizontalScrollbar。
返回float – 修改后的值。这可以通过拖动这个滚动条,或者单击两端的箭头来改变。
描述:制作一个水平滚动条。滚动条可以用来滚动文档。大多数情况下,你会使用scrollViews代替。
找到额外的元素:
在滚动条两端的按钮将在当前皮肤中搜索”leftbutton”和”rightbutton”作为风格。滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。
//这将使用下面的风格名来决定该按钮的尺寸/位置
//MyScrollbarrightbutton – 用于左侧按钮的风格名称
//MyScrollbarleftbutton – 用于右侧按钮的风格名称
//MyScrollbarthumb – 用于滑块的风格名称
scrollPos = HoriztontalScrollbar(Rect(0, 0, 100, 20), scrollPos, 1, 0, 100, “My Scrollbar”);
◆ static function HorizontalSlider(position : Rect, value : float, leftValue : float, rightValue : float) : float
◆ static function HorizontalSlider(position : Rect, value : float, leftValue : float, rightValue : float, slider : GUIStyle, thumb : GUIStyle) : float
参数
position屏幕上用于滑杆的矩形区域
value滑杆显示的值。这个决定可拖动的位置。
leftValue滑杆左边的值
rightValue 滑杆右边的值
slider用于显示拖动区域的GUIStyle。如果不设置, 将使用当前GUISkin的 horizontalSlider。
thumb用于显示拖动块的GUIStyle。如果不设置, 将使用当前GUISkin的horizontalSliderThumb。
返回float – 被用户设置的值。
描述:一个用户可以拖动的滑杆。可以在min和max只见改变一个值。
◆ static function Label(position : Rect, text : string) : void
◆ static function Label(position : Rect, image : Texture) : void
◆ static function Label(position : Rect, content : GUIContent) : void
◆ static function Label(position : Rect, text : string, style : GUIStyle) : void
◆ static function Label(position : Rect, image : Texture, style : GUIStyle) : void
◆ static function Label(position : Rect, content : GUIContent, style : GUIStyle) : void
参数
position屏幕上用于标签的矩形区域
text 显示在该标签上的文本
image显示在该标签上的Texture
content用于这个标签的文本,图形和提示
style 使用的风格。如果不设置,将使用当前GUISkin的label
描述:在屏幕上制作一个文本或者纹理标签.
标签没有用户交互,不会获取鼠标点击并总是以普通风格渲染。如果你想制作一个可视化响应用户输入的控件,使用一个Box控件。
例如:绘制一个传统的Hello world字符串
function OnGUI
{
GUI.Label(Rect(10, 10, 100, 20), “Hello world”);
}
例如:在屏幕上绘制一个纹理。标签也用于显示纹理,而不仅是字符串。简单传递一个纹理。
var textureToDisplay : Texture2D;
function OnGUI()
{
GUI.Label(Rect(10, 40, textureToDisplay.width, textureToDiplay.height), textureToDisplay);
}
◆ static function PasswordField(position : Rect, password : string, markChar : char) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char, maxLength : int) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char, style : GUIStyle) : string
◆ static function PasswordField(position : Rect, password : string, markChar : char, markChar : char, style : GUIStyle) : string
参数
position屏幕上用于文本的矩形区域
password 用于编辑的密码。这个函数返回值应该被赋回这个字符串。如下的例 子。
markChar 用来隐藏密码的字符。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style使用的风格。不过不设置,将那个使用当前GUISkin的textField风格。
返回string – 编辑过的密码
描述:制作一个用户可以输入密码的文本域。
var passwordToEdit = “My Password”;
function OnGUI()
{
//制作一个文本来调整stringToEdit。
passwordToEdit = GUI.PasswordField(Rect(10, 10, 200, 20), passwordToEdit, “*”, 25);
}
◆ static function RepeatButton(position : Rect, text : string) : bool
◆ static function RepeatButton(position : Rect, image : Texture) : bool
◆ static function RepeatButton(position : Rect, content : GUIContent) : bool
◆ static function RepeatButton(position : Rect, text : string, style : GUIStyle) : bool
◆ static function RepeatButton(position : Rect, image : Texture, style : GUIStyle) : bool
◆ static function RepeatButton(position : Rect, content : GUIContent, style : GUIStyle) : bool
参数
position 屏幕上用于按钮的矩形区域
text显示在该按钮上的文本
image 显示在该按钮上的Texture
content 用于这个按钮的文本,图形和提示
style使用的风格。不过不设置,将那个使用当前GUISkin的button风格。
返回bool - /true/当用户单击按钮时。
描述:制作一个按钮。当用户按住它时一直是激活的。
◆ static function ScrollTo(position : Rect) : void
描述:滚动所有包含在scrollview中的数据以便position可见。
◆ static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount : int) : int
◆ static function SelectionGrid (position : Rect, selected : int, images : Texture[], xCount : int) : int
◆ static function SelectionGrid (position : Rect, selected : int, content : GUIContent[], xCount : int) : int
◆ static function SelectionGrid (position : Rect, selected : int, texts : string[], xCount : int, style : GUIStyle) : int
◆ static function SelectionGrid (position : Rect, selected : int, images : Texture[], xCount : int, style : GUIStyle) : int
◆ static function SelectionGrid (position : Rect, selected : int, content : GUIContent[], xCount : int, style : GUIStyle) : int
参数
position屏幕上用于网格的矩形区域。
selected选择的网格按钮的索引
texts 显示在网格按钮上的字符串数组
images显示在网格按钮上的纹理数组
contents用于这个网格按钮的文本,图形和提示数组
xCount在水平方向有多少个像素。空间将被缩放来适应,除非风格定义了一 个fixWidth。
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
返回int – 选择按钮的索引。
描述:制作一个按钮网络。
◆ static function SetNextControlName(name : string) : void
描述:设置下一个控件的名称。
这是接下来的控件被注册。
◆ static function TextArea(position : Rect, text : string) : string
◆ static function TextArea(position : Rect, text : string, maxLength : int) : string
◆ static function TextArea(position : Rect, text : string, style : GUIStyle) : string
◆ static function TextArea(position : Rect, text : string, maxLength : int, style : GUIStyle) : string
参数
position 屏幕上用于文本的矩形区域
text用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style使用的风格。如果不设置,将使用当前GUISkin的textArea。
返回string – 编辑过的字符串
描述:制作一个多行文本区域。这里用户可以编辑这个字符串。
var stringToEdit = “Hello World\nI’ve got 2 lines…”;
function OnGUI()
{
//制作一个多行文本区域来调整stringToEdit
stringToEdit = GUI.TextArea(Rect(10, 10, 200, 100), stringToEdit, 200);
}
◆ static function TextField(position : Rect, text : string) : string
◆ static function TextField(position : Rect, text : string, maxLength : int) : string
◆ static function TextField(position : Rect, text : string, style : GUIStyle) : string
◆ static function TextField(position : Rect, text : string, maxLength : int, style : GUIStyle) : string
参数
position 屏幕上用于文本的矩形区域
text用于编辑的文本。这个函数返回值应该被赋回这个字符串。如下的例子。
maxLength 字符串的最大长度。如果不设置,用户可以一直输入。
style使用的风格。如果不设置,将使用当前GUISkin的textField风格。
返回string – 编辑过的字符串
描述:制作一个单行文本域。这里用户可以编辑这个字符串。
var stringToEdit = “Hello World”;
function OnGUI()
{
//制作一个文本域来调整stringToEdit
stringToEdit = GUI.TextField(Rect(10, 10, 200, 20), stringToEdit, 25);
}
◆ static function Toggle(position : Rect, value : bool, text : string) : bool
◆ static function Toggle(position : Rect, value : bool, image : Texture) : bool
◆ static function Toggle(position : Rect, value : bool, content : GUIContent) : bool
◆ static function Toggle(position : Rect, value : bool, text : string, style : GUIStyle) : bool
◆ static function Toggle(position : Rect, value : bool, image : Texture, style : GUIStyle) : bool
◆ static function Toggle(position : Rect, value : bool, content : GUIContent, style : GUIStyle) : bool
参数
position屏幕上用于按钮的矩形区域
value这个按钮是打开的或关闭
text 显示在该按钮上的文本
image显示在该按钮上的Texture
content用于这个按钮的文本,图形和提示
style 使用的风格。如果不设置,将使用当前GUISkin的toggle风格。
返回bool – 按钮的新值
描述:制作一个on/off开关按钮
◆ static function Toolbar(position : Rect, selected : int, texts : string[]) : int
◆ static function Toolbar(position : Rect, selected : int, images : Texture[]) : int
◆ static function Toolbar(position : Rect, selected : int, contents : GUIContent[]) : int
◆ static function Toolbar(position : Rect, selected : int, texts : string, style : GUIStyle[]) : int
◆ static function Toolbar(position : Rect, selected : int, images : Texture, style : GUIStyle[]) : int
◆ static function Toolbar(position : Rect, selected : int, contents : GUIContent[], style : GUIStyle) : int
参数
position屏幕上用于工具栏的矩形区域
selected选择按钮的索引
texts 显示在该工具栏上的字符串数组
images显示在工具栏按钮上的纹理数组
contents用于这个工具栏的文本,图形和提示数组。
style 使用的风格。如果不设置,将使用当前GUISkin的button风格。
返回int – 选择按钮的索引
描述:制作一个工具栏
◆ static function UnfocusWindows() : void
描述:从所有窗体上移除焦点。
◆ static function VerticalScrollbar(position : Rect, value : float, size : float, topValue : float, buttonValue : float) : float
◆ static function VerticalScrollbar(position : Rect, value : float, size : float, topValue : float, buttonValue : float, style : GUIStyle) : float
参数
position屏幕上用于滚动条的矩形区域。
value在min和max之间的位置。
size 能看见多大?
topValue滚动条顶端的值
bottomValue 滚动条底端的值
style 使用的风格。如果不设置,将使用当前GUISkin的horizontalScrollbar 风格。
返回float – 修改后的值。这可以通过拖动这滚动条,或者单击两端的箭头来改变。
描述:制作一个垂直滚动条。滚动条可以用来滚动文档。大多数情况下,你会使用scrollViews代替。
找到额外的元素:
在滚动条两端的按钮将在当前皮肤中搜索“upbutton”和“downbutton”作为风格。滚动条的滑块(你拖动的东西)将搜索并使用名为“thumb”的风格。
//这将使用下面的风格名来决定该按钮的尺寸位置。
//MyVertScrollbarupbutton – 用于上端按钮的风格名称。
//MyVertScrollbardownbutton – 用于下端按钮的风格名称。
//MyVertScrollbarthumb – 用于滑块的风格名称。
scrollPos = HorizontalScrollbar(Rect(0, 0, 100, 20), scrollPos, 1, 0, 100, “MyVertScrollbar”);
◆ static function VerticalSlider(position : Rect, value : float, topValue : float, buttonValue : float) : float
◆ static function VerticalSlider(position : Rect, value : float, topValue : float, buttonValue : float, slider : GUIStyle, thumb : GUIStyle) : float
参数
position屏幕上用于滑杆的矩形区域。
value滑杆显示的值。这个决定可移动滑块的位置。
topValue滑杆顶端的值
bottomValue 滑杆底端的值
slider用于显示拖动区域的GUIStyle。如果不设置,将使用当前GUISkin的horizontalSlider。
thumb用于显示土洞区域的GUIStyle。如果不设置,将使用当前GUISkin的horizontalSliderThumb。
返回float – 被用户设置的值。
描述:一个用户可以拖动的垂直滑杆。可以在min和max之间改变一个值。
◆ static function Window(id : int, position : Rect, func : WindowFunction, text : string) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, image : Texture) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, content : GUIContent) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, text : string, style : GUISytle) : Rect
◆ static function Window(id : int, position : Rect, func : WindowFunction, image : Texture, style : GUIStyle) : Rect
◆ static function Window(id : int, clientRect : Rect, func : WindowFunction, title : GUIContent, style : GUIStyle) : Rect
参数
id用于每个窗口的唯一ID。这是用于接口的ID。
clientRect 屏幕上用于组的矩形区域。
func在窗体内部创建GUI的函数。这个函数必须使用一个函数 – 当前创建 GUI的窗体id
text作为窗体标签的文本。
image 用于在标题栏上显示图片的Texture
content 用于这个窗口的文本,图形和提示。
style用于窗口的可选风格。如果不设置,将使用当前GUISkin的window。
返回Rect – 窗口位于的矩形位置
描述:制作一个弹出窗口
窗口浮动在普通GUI控件之上,具有单击激活的特点并可以有选择的随意被端用户拖动。不像其他的控件,你需要传递给他们一个独立的功能并放置在窗口中。注意:如果你使用GUILayout在窗口中放置你的组件,你应该使用GUILayout.Window。这是一个小例子帮助你开始:
var windowRect = Rect(20, 20, 120, 50);
function OnGUI()
{
//注册窗口。注意第三个参数。
windowRect = GUI.Window(0, windowRect, DoMyWindow, “My Window”);
}
//制作窗口内容
function DoMyWindow(windowID : int)
{
if(GUI.Button(Rect(10, 20, 100, 20), ”Hello World”))
print(“Get a click”);
}
你可以使用相同的函数来创建多个窗口。需要确保每个窗口有一个自己的ID。例如:
var windowRect0 = Rect(20, 20, 120, 50);
var windowRect1 = Rect(20, 100, 120, 50);
function OnGUI()
//注意窗口。我们创建了两个使用相同函数的窗体
//注意他们的ID不同。
windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, “My Window”);
windowRect1 = GUI.Window(1, windowRect1, DoMyWindow, “My Window”)
}
//制作窗口内容
function DoMyWindow(windowID : int)
{
if(GUI.Button(Rect(10, 20, 100, 20), “Hello World”))
print(“Get a click in window ” + windowID);
//使窗口可以被拖动
GUI.DragWindow(Rect(0, 0, 10000, 10000));
}
停止显示窗口,简单的在DoGUI函数内停止调用GUI.Window。
//布尔变量以决定是否显示窗口
//从游戏GUI,脚本,检视面板中或者其他地方改变这个决定窗口是否可见。
var doWindow() = true;
//制作窗口内容
function OnGUI()
{
//制作一个开关变量来隐藏或显示窗口
doWindow() = GUI.Toggle(Rect(10, 10, 100, 20), doWindow(), “Window 0”);
//确保仅在doWindow()为真时调用GUI.Window
if(doWindow())
GUI.Window(0, Rect(110, 10, 200, 60), DoWindow(), “Basic Window”);
}
为了使窗口从自动GUI获取它的尺寸,使用GUILayout.Window。
调用顺序
窗口需要从后向前绘制。在其他窗口顶部的窗口需要在其他窗口之后绘制。这就意味着你不能指望你的DoWindow函数以任何特定的顺序被调用。为了让这个能够工作,当你的创建窗口时下面值被存储(使用Window函数),当DoWindow被调用时取回:GUI.skin, GUI.enabled, GUI.color, GUI.backgroundColor, GUI.contentColor, GUI.matrix
这就是说很容易像这样制作彩色窗口:
var windowRect0 = Rect(20, 20, 120, 50);
var windowRect1 = Rect(20, 100, 120, 50);
function OnGUI()
{
//这里我们制作了2个窗口,在这个之前设置GUI.color的值。
GUI.color = Color.red;
windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, “Red Window”);
GUI.color = Color.green;
windowRect1 = GUI.Window(1, windowRect1, DoMyWindow, “Green Window”);
}
//制作窗口内容
//GUI.color的值被设置为窗口被创建之前的值。
function DoMyWindow(windowID : int)
{
if(GUI.Button(Rect(10, 20, 100, 20), “Hello world!”))
print(“Got a click in window with color ” + GUI.color);
//使窗口可以被拖动
GUI.DragWindow(Rect(0, 0, 10000, 10000));
}
提示:你可以使用GUI.color的alpha组件来淡入淡出窗口。
参见:DragWindow, BringWindowToFront, BringWindowToBack
GeometryUtility
类
用于普通集合功能的工具类
类方法
◆ static function CalculateFrusturnPlanes(camera : Camera) : Plane[]
描述:计算视锥平面
这个函数取给定的相机视锥并返回它的六个面。
参见:Plane, GeometryUtility.TestPlanesAABB
◆ static function CalculateFrusturnPlanes(worldToProjection : Matrix4x4) : Plane[]
描述:计算视锥平面
这个函数返回由给定的视和投影矩阵定义的视锥的六个面。
参见:Plane, GeometryUtility.TestPlanesAABB
◆ static function TestPlanesAABB(planes : Plane[], bounds : Bounds) : bool
描述:如果包围盒在平面数组内部返回真。
如果包围盒在平面内部或者与任何平面交互返回真。
参见:GeometryUtility.CalculateFrusturnPlanes。
Gizmos
类
Gizmos用于场景中给出一个可视化的调试或辅助设置。
所有的Gizmos绘制都必须在脚本的OnDrawGizmos或OnDrawGizmosSelected函数中完成。
OnDrawGizmos在每一帧都被调用。所有在OnDrawGizmos内部渲染的Gizmos都是可见的。
OnDrawGizmosSelected尽在脚本所附加的物体被选中时调用。
类变量
◆ static var color : Color
描述:设置下次绘制的Gizmos的颜色。
function OnDrawGizmosSelected()
{
//在物体的前方绘制一个5米长的线
Gizmos.color = Color.red;
var direction = transform.TransformDirection(Vector3.forward) * 5;
Gizmos.DrawRay(transform.position, direction);
}