Version: 6000.3
语言: 中文
扩展 IMGUI
GUI 样式(IMGUI 系统)

GUI 皮肤(IMGUI 系统)

切换到脚本

GUISkins 是可以应用于 GUI 的 GUIStyle 的集合。每个控件类型都有自己的样式定义。皮肤旨在允许您将样式应用于整个 UI,而不是单个控件本身。

检查器中显示的GUI皮肤
检查器中显示的GUI皮肤

要创建 GUISkin,请从菜单栏中选择 Assets->Create->GUI Skin

请注意:此页面是指 IMGUI 系统的一部分,这是一个仅脚本的 UI 系统。Unity 有一个完整的基于游戏对象的 UI 系统,你可能更喜欢使用它。它允许您将用户界面元素设计和编辑为可见对象场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
视图。有关更多信息,请参阅 UI 系统手册

性能

GUI皮肤中的所有属性都是一个单独的GUIStyle。请阅读 GUIStyle 页面,了解有关如何使用样式的更多信息。

财产: 功能:
字体 用于 GUI 中每个控件的全局字体
用于所有盒子的样式
按钮 用于所有按钮的样式
切换 允许用户打开或关闭选项的复选框。更多信息
请参阅术语表
用于所有切换的样式
标签 用于所有标签的样式
文本字段 用于所有文本字段的样式
文本区域 用于所有文本区域的样式
用于所有 Windows 的样式
水平滑块 用于所有水平滑块的样式
水平滑块拇指 用于所有水平滑块拇指按钮的样式
垂直滑块 用于所有垂直滑块的样式
垂直滑块拇指 用于所有垂直滑块拇指按钮的样式
水平滚动条 用于所有水平滚动条的样式
水平滚动条缩略图 用于所有水平滚动条拇指按钮的样式
水平滚动条左按钮 用于所有水平滚动条滚动左按钮的样式
水平滚动条右键 用于所有水平滚动条滚动右按钮的样式
垂直滚动条 用于所有垂直滚动条的样式
垂直滚动条缩略图 用于所有垂直滚动条拇指按钮的样式
垂直滚动条向上按钮 用于所有垂直滚动条向上滚动按钮的样式
垂直滚动条向下按钮 用于所有垂直滚动条向下滚动按钮的样式
自定义 1–20 可应用于任何控件的其他自定义样式
自定义样式 可应用于任何控件的其他自定义样式数组
设置 整个 GUI 的其他设置
        双击选择单词 如果启用,双击单词将选择它
        三次单击选择线 如果启用,三次单击单词将选择整行
        光标颜色(Cursor Color) 键盘光标的颜色
        光标闪光速度 编辑任何文本控件时文本光标闪烁的速度
        选择颜色 文本所选区域的颜色

当你为游戏创建整个GUI时,你可能需要为每种不同的控件类型进行大量自定义。在许多不同的游戏类型中,例如即时战略或角色扮演,几乎需要每一种控制类型。

由于每个单独的控件都使用特定的样式,因此创建十几个单独的样式并手动分配它们是没有意义的。GUI 皮肤会为您解决这个问题。通过创建 GUI 皮肤,您可以为每个单独的控件预定义样式集合。然后,您可以使用一行代码应用皮肤,这样就无需手动指定每个单独控件的样式。

创建 GUISkin

GUISkin 是资源文件。要创建 GUI 皮肤,请从菜单栏中选择 Assets->Create->GUI Skin。这将在您的项目视图中放置一个新的 GUISkin。

项目视图中的新 GUISkin 文件
项目视图中的新 GUISkin 文件

编辑 GUISkins

创建 GUISkin 后,您可以编辑其中包含的所有样式检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
. 例如,文本字段样式将应用于所有文本字段控件。

在 GUISkin 中编辑文本字段样式
在 GUISkin 中编辑文本字段样式

无论您在脚本中创建了多少个文本字段,它们都将使用此样式。当然,如果您愿意,您可以控制更改一个文本字段的样式。接下来我们将讨论如何完成。

应用 GUISkins

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

    // Create a public variable where we can assign the GUISkin
    var customSkin : GUISkin;

    // Apply the Skin in our OnGUI() function
    function OnGUI () {
        GUI.skin = customSkin;

        // Now create any Controls you like, and they will be displayed with the custom Skin
        GUILayout.Button ("I am a re-Skinned Button");

        // You can change or remove the skin for some Controls but not others
        GUI.skin = null;

        // Any Controls created here will use the default Skin and not the custom Skin
        GUILayout.Button ("This Button uses the default UnityGUI Skin");
    }

在某些情况下,你希望拥有两个具有不同样式的相同控件。为此,创建新外观并重新分配它是没有意义的。相反,你使用皮肤中的一个自定义样式。为自定义样式提供名称,你可以将该名称用作单个控件的最后一个参数。

    // One of the custom Styles in this Skin has the name "MyCustomControl"
    var customSkin : GUISkin;

    function OnGUI () {
        GUI.skin = customSkin;

        // We provide the name of the Style we want to use as the last argument of the Control function
        GUILayout.Button ("I am a custom styled Button", "MyCustomControl");

        // We can also ignore the Custom Style, and use the Skin's default Button Style
        GUILayout.Button ("I am the Skin's Button Style");
    }

有关使用 GUIStyles 的更多信息,请阅读 GUIStyle 页面。有关使用 UnityGUI 的更多信息,请阅读 GUI 脚本指南

GUISkin

扩展 IMGUI
GUI 样式(IMGUI 系统)