GUI 脚本指南        

概述

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

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

// JavaScriptfunction 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 中的所有控件都可按照本节中描述的方法用 GUIStylesGUISkins 进行自定义。

布局模式

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

扩展 UnityGUI

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

扩展 Unity 编辑器

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

,