GUI 皮肤

GUISkins 是一组可以应用到 GUI 的 GUIStyles 。每个控件 (Control) 类型都有各自的样式 (Style) 定义。皮肤使您能够将一种样式应用于整个 UI,而不只是应用于单个控件 (Control)。


检视器 (Inspector) 中的 GUI 皮肤 (GUI Skin)

如需创建 GUISkin,请在菜单栏上选择资源 (Assets) -> 创建 (Create) -> GUI 皮肤 (GUI Skin)

GUISkin 是 UnityGUI 系统的一部分。有关 UnityGUI 的更多详细信息,请参阅 GUI 脚本指南.

属性

GUI 皮肤中的所有属性都是一个独立的 GUIStyle 。有关如何使用样式 (Style) 的更多信息,请参阅GUIStyle 页。

属性:功能:
字体 (Font)用于 GUI 中每个控件 (Control) 的全局字体。
盒子 (Box)用于所有盒子的样式
按钮 (Button)用于所有按钮的样式
切换键 (Toggle)用于所有切换键的样式
标签 (Label)用于所有标签的样式
文本框 (Text Field)用于所有文本框的样式
文本区域 (Text Area)用于所有文本区域的样式
窗口 (Window)用于所有窗口的样式
水平滑动条 (Horizontal Slider)用于所有水平滑动条的样式
水平滑块 (Horizontal Slider Thumb)用于所有水平滑块按钮的样式
垂直滑动条 (Vertical Slider)用于所有垂直滑动条的样式
垂直滑块 (Vertical Slider Thumb)用于所有垂直滑块按钮的样式
水平滚动条 (Horizontal Scrollbar)用于所有水平滚动条的样式
水平滚动条滑块 (Horizontal Scrollbar Thumb)用于所有水平滚动条滑块按钮的样式
水平滚动条向左按钮 (Horizontal Scrollbar Left Button)用于所有水平滚动条向左按钮的样式
水平滚动条向右按钮 (Horizontal Scrollbar Right Button)用于所有水平滚动条向右按钮的样式
垂直滚动条 (Vertical Scrollbar)用于所有垂直滚动条的样式
垂直滚动条滑块 (Vertical Scrollbar Thumb)用于所有垂直滚动条滑块按钮的样式
垂直滚动条向上按钮 (Vertical Scrollbar Up Button)用于所有垂直滚动条向上按钮的样式
垂直滚动条向下按钮 (Vertical Scrollbar Down Button)用于所有垂直滚动条向下按钮的样式
自定义 1 - 20可用于任何控件 (Control) 的其他自定义样式 (Styles)
自定义样式 (Custom Styles)可用于任何控件 (Control) 的一系列其他自定义样式 (Styles)
设置 (Settings)整个 GUI 的其他设置
双击选词 (Double Click Selects Word)启用后,通过双击可以选中一个词
三击选行 (Triple Click Selects Line)启用后,通过三击某个词可以选中此行
光标颜色 (Cursor Color)键盘光标的颜色
光标闪烁速度 (Cursor Flash Speed)编辑任何文本控制 (Text Control) 时文本光标闪烁的速度
选择区域颜色 (Selection Color)选择的文本 (Text) 区域的颜色

详细信息

为游戏创建整个 GUI 时,您可能需要为各种不同类型的控件 (Control) 做大量自定义。在许多不同的游戏类型中(如即时战略游戏或角色扮演游戏),几乎每种控件 (Control) 类型都需要自定义。

由于每个独立的控件 (Control) 都使用特殊的样式 (Style),因此不必创建十几个不同的样式并手动指定。GUI 皮肤 (GUI Skins) 将为您解决这个问题。通过创建 GUI 皮肤 (GUI Skin),您可以获得一组预先定义的针对每个独立控件 (Control) 的样式 (Styles)。之后,应用带有一行代码的皮肤 (Skin),这样您就不必手动为每个独立的控件 (Control) 指定样式 (Style) 了。

创建 GUISkin

GUISkin 是资源文件。如需创建 GUI 皮肤 (GUI Skin),请从菜单栏选择资源 (Assets) -> 创建 (Create) -> GUI 皮肤 (GUI Skin) 。您的工程视图 (Project View中会出现新的 GUISkin。


项目视图 (Project View) 中的新 GUISkin 文件

编辑 GUISkin

创建 GUISkin 后,您可以编辑检视器 (Inspector) 中包含的所有样式 。例如,文本框 (Text Field) 样式将会应用于所有文本框控件 (Text Field Controls)。


在 GUISkin 中编辑文本框样式 (Text Field Style)

无论脚本中创建了多少个文本框 (Text Field),它们都将使用此样式。当然,如果您愿意,您可以更改某个文本框 (Text Field) 的样式。接下来我们将讨论如何进行以上操作。that is done next.

应用 GUISkin

要将 GUISkin 应用到 GUI,您必须用简单的脚本来读取皮肤 (Skin) 并将其应用于控件 (Control)。

// 创建一个我们可以于其中分配 GUISkin 的变量
var customSkin : GUISkin;

// 在 OnGUI() 函数中应用皮肤 (Skin)
function OnGUI () {
	GUI.skin = customSkin;

	// 现在创建您喜欢的任何控件 (Control),然后其会以自定义皮肤 (Skin) 的样子显示
	GUILayout.Button ("I am a re-Skinned Button");

	// 您可以改变或移除某些控件 (Control) 的皮肤,但无法改变或移除其他控件 (Control) 的皮肤
	GUI.skin = null;

	// 在此创建的所有控件 (Control) 都将使用默认皮肤 (Skin),而不使用自定义皮肤 (Skin)
	GUILayout.Button ("This Button uses the default UnityGUI Skin");
}

某些情况下,您需要两个拥有不同样式 (Style) 的同一控件 (Control)。这时,没必要创建一个新皮肤 (Skin) 并进行重新指定。相反,您可以使用皮肤中的某个自定义 (Custom) 样式 (Style)。为自定义样式 (Style) 取一个名字 (Name) ,这样您便能够将这个名字作为该独立控件 (Control) 的最后一个参数加以使用。

// 此皮肤 (Skin) 中的自定义样式 (Style) 之一的名称是“MyCustomControl
var customSkin : GUISkin;

function OnGUI () {
	GUI.skin = customSkin;

	// 我们提供 想使用的样式 (Style) 的名称,作为控件 (Control) 函数的最后一个参数。
	GUILayout.Button ("I am a custom styled Button", "MyCustomControl");

	// 我们也可以忽略自定义样式 (Custom Style),并使用皮肤 (Skin) 的默认按钮样式 (Button Style)
	GUILayout.Button ("I am the Skin's Button Style");
}

有关使用 GUIStyle 的更多信息,请参阅 GUIStyle 页面。有关使用 UnityGUI 的更多信息,请参阅 GUI Scripting Guide

Page last updated: 2013-07-01