游戏界面元素

Unity 为您提供许多选项来创建游戏的图形用户界面 (GUI)。您可以使用场景中的 GUI 文本和 GUI 纹理对象,或者使用 UnityGUI 从脚本生成界面。

该页面的其余部分包含入门和使用 UnityGUI 运行的详细指南。

GUI 脚本指南

概述

UnityGUI 使您能够快速、轻松地创建大量功能强大的 GUI。通过手动定位 GUI 对象并编写处理其功能的脚本,您只需几行代码即可马上搞定一切,而不是创建 GUI 对象。代码生成 GUI 控件 (GUI controls) ,这些控件通过单个的函数调用进行实例化、定位和处理。

例如,以下代码将创建和处理一个按钮,而不需要在编辑器或其他地方进行额外操作:-

// JavaScript
function OnGUI () {
    if (GUI.Button (Rect (10,10,150,100), \"I am a button\")) {
        print (\"You clicked the button!\");
    }
}
 
 
// C#
using UnityEngine;
using System.Collections;
 
public class GUITest : MonoBehaviour {
 
    void OnGUI () {
        if (GUI.Button (new Rect (10,10,150,100), \"I am a button\")) {
            print (\"You clicked the button!\");
        }
    }
}


这是由以上代码创建的按钮

虽然这个示例非常简单,但在 UnityGUI 中有非常强大和复杂的方法可供使用。GUI 的构建是一个大主题,但以下部分应该可以帮助您尽快了解它。本指南可以通读,也可作为参考材料。

UnityGUI 基础

这部分涵盖了 UnityGUI 的基本概念,提供了概述以及一组可粘贴到自己代码里的应用示例。UnityGUI 很容易上手,因此从这里开始比较好。

控件

本节列出了 UnityGUI 中的每个可用控件 (Control) 以及显示结果的代码样例和图像。

自定义

能够更改 GUI 外观使其与您的游戏外观相匹配是很重要的。UnityGUI 中的所有控件都可按照本节中描述的方法用 GUIStyles 和 GUISkins 进行自定义。

布局模式

UnityGUI 提供两种布置 GUI 的方法:您可以手动将每个控件放置在屏幕上,也可使用与 HTML 表的工作原理相同的自动布局系统。可根据需要使用任何一种方法,并且这两种方法可以自由组合。本节讲解了这两种系统之间的功能差异,包括示例。

扩展 UnityGUI

使用新的控件 (Control) 类型可很容易地扩展 UnityGUI。这章向您展示如何制作简单的复合 (compound) 控件,包括集成到 Unity 事件系统。

扩展 Unity 编辑器

Unity 编辑器的 GUI 实际上是使用 UnityGUI 编写的。因此,使用用于游戏中的 GUI 的相同类型代码可使编辑器高度扩展。此外,还有大量专门用于编辑器 (Editor) 的 GUI 控件来帮助您创建自定义编辑器 GUI。