`

Unity中的GUI编程

阅读更多
http://blog.csdn.net/aisajiajiao/article/details/17472503

在这篇文章中我将给读者介绍Unity中的图形用户界面(GUI)编程.Unity有一个非常强大的GUI脚本API.它允许你使用脚本快速创建简单的菜单和GUI.

简介
Unity提供了使用脚本创建GUI界面的能力.在写这篇文章的时候,Unity还没有提供一套原生的可视化GUI开发工具,尽管你可能会在Unity Asset商店找到一些使用某种形式的图形化脚本编程编写GUI的工具.Autodesk Scaleform也提供了一个可以单独购买并整合进Unity的插件但这超出了这篇文章的范围.如果你对Scaleform插件的unity版本感兴趣,我推荐你看看Scaleform Unity Plugin.

Unity提供了两个主要的类来创建GUI.GUI类用于创建手动放置的GUI控件.GUILayout类用于创建自动放置的GUI控件.这两个类之间的区别将在文章后面搞清楚.

Unity也提供了GUISkin资源(asset翻译成套件?).它可以被应用于给你的GUI控件提供一种通用的的"外观和感觉".一个GUISkin只是GUIStyle对象的集合.每个GUIStyle对象定义了单个GUI控件的样式,比如按钮,标签或者文本域.

GUiText组件可被用于渲染单个的文本元素,GUITexture组件可以被用于渲染2D材质到屏幕.GUIText和GUITexture都适用于为你的游戏绘制GUI元素(就像HUD),但这些组件不适用于在游戏中绘制菜单.对于游戏中的菜单(像等级选择和选项设置页面)你应该使用GUI和GUILayout类.

这些不同的类,资源(Asset)和组件每一个本文中都会阐述

创建菜单
首先我讲述一下如何在使用GUI和GUILayout在Unity中创建菜单.我也会向你展示如何使用GUISkin和GUIStyle来自定义GUI控件的外观

OnGUI回调函数
GUI的渲染是通过创建脚本并定义OnGUI函数来执行的.所有的GUI渲染都应该在该函数中执行或者在一个被OnGUI调用的函数中执行

ButtonDemo.js

function OnGUI() 

    var buttonWidth = 100; 
    var buttonHeight = 50; 
 
    var buttonX = (Screen.width - buttonWidth) / 2.0f; 
    var buttonY = (Screen.height - buttonHeight) / 2.0f; 
     
    //在屏幕中间绘制一个button组件 
    if(GUI.Button(Rect(buttonX,buttonY,buttonWidth,buttonHeight),"Press Me!")) 
    { 
        //在调试控制台打印一些文字 
        Debug.Log("Thanks!"); 
    } 


脚本ButtonDemo.js将会在屏幕中间绘制一个按钮,松开按钮文字"Thanks!"就会被打印到调试控制台.

GUIContent

大多数通用控件比如按钮和标签允许你指定控件上该呈现在控件上的的文本或者材质.如果你想在一个控件上指定文本与材质,那必须使用GUIContent结构.

CUIContent结构有几个构造函数允许你创建一个带有文本,材质和tooltip的CUIContent对象.

下面的例子扩展了之前的例子,但在这个例子中按钮的内容由GUIContent结构指定.
等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等
分享到:
评论

相关推荐

    Unity3GUI做的背包[源码]

    在本案例中,“Unity3GUI做的背包[源码]”项目,就是利用Unity3D的GUI系统来构建了一个游戏中的背包系统,用于展示和交互游戏内的物品。 GUI系统在Unity3D中分为两种:一种是传统的基于Texture的GUI,也就是在描述...

    EZ_GUI Unity製作GUI的Package

    《EZ_GUI:Unity 3D中的高效GUI制作神器》 Unity 3D作为一款强大的游戏开发引擎,其内置的GUI系统虽然基础全面,但在复杂的用户界面设计和交互实现上,可能会显得力不从心。此时,第三方插件就显得尤为重要,而"EZ_...

    Unity 3D GUI程序部分

    以下是一些关于Unity 3D GUI编程的关键知识点: 1. **OnGUI() 函数**:这是Unity中处理GUI事件的主要方法,每当需要更新屏幕上的GUI元素时,这个函数会被自动调用。例如,在示例中,`OnGUI()` 内部包含了按钮生成和...

    unity3d基本教程 包括gui和script入门 非常适合入门的教程

    本教程专注于基础,旨在帮助初学者快速掌握Unity3D的基本操作,包括GUI系统和Script编程,为后续深入学习打下坚实基础。 GUI(Graphical User Interface)在Unity3D中用于创建游戏界面和交互元素,例如菜单、按钮、...

    EZGUI 最好的unity的GUI组件

    EZGUI是Unity引擎中的一款强大的图形用户界面(GUI)组件,专为简化和优化游戏或应用的用户界面设计而打造。在Unity中,GUI系统是用于创建和管理游戏中的交互元素,如按钮、文本、图像等,而EZGUI则提供了一个更加...

    unity 3d ez gui

    Unity 3D EZ GUI 是一个专门针对Unity 3D游戏引擎设计的可视化界面插件,它的主要目的是简化在Unity中创建和管理用户界面(UI)的过程。通过EZ GUI,开发者可以更加直观和高效地构建丰富的交互式图形界面,无需深入...

    Unity3D GUI菜单栏简易实现无重复项

    标签"unity3d GUI"表明这个话题是关于Unity3D的GUI编程,UGUI系统提供了一套基于 RectTransform 的布局系统,可以方便地调整UI元素的位置和大小。Dropdown和Button都是UGUI的预制件,它们都包含Text、Image等子组件...

    摄像头切换脚本1

    此外,本脚本还可以作为 Unity 中 GUI 编程的示例,展示了如何使用 GUI 皮肤和按钮来实现交互功能。 需要注意的是,本脚本适用于 Unity 3.x 版本,在 Unity 4.x 版本中,GUI 编程的方式有所改变,因此需要进行相应...

    Unity中的日历插件

    在Unity游戏开发中,日历插件是一种非常实用的工具,尤其对于那些需要涉及时间管理、事件安排或者模拟现实世界时间的游戏来说。本篇将详细探讨Unity中的日历插件,包括其功能、应用场景以及如何在项目中集成和使用。...

    第五讲_Unity_GUI

    在 Unity 中,可以通过编程的方式实现场景之间的切换。常用的 API 包括 `SceneManager.LoadScene()` 和 `SceneManager.LoadSceneAsync()` 等,它们允许开发者加载新的场景或异步加载场景以提高性能。 综上所述,...

    Unity3D脚本:GUI控制物体JS代码2

    在Unity3D中,JavaScript(JS)是一种常用的编程语言,用于编写游戏逻辑和交互功能。在本示例中,我们看到一个使用JavaScript控制GUI(图形用户界面)来改变游戏对象缩放比例的脚本。这个功能可以应用于各种场景,...

    Unity GUI源码

    总的来说,Unity GUI源码是Unity引擎中不可或缺的一部分,对于游戏开发者而言,掌握UGUI的使用和源码分析能力,将极大地提升项目开发效率和用户体验。通过不断学习和实践,开发者可以创建出更加精美和互动性强的游戏...

    Unity3D体感游戏碰撞之后得分代码1

    在 Unity3D 中,GUI 编程是游戏中的重要组件。它负责渲染游戏中的图形用户界面。在这个代码中,我们可以看到 OnGUI 方法,它是 GUI 编程的一部分,负责渲染游戏中的得分信息。 知识点5: Unity3D 中的碰撞检测 在 ...

    HTML Engine for NGUI & Unity GUI

    HTML Engine for NGUI & Unity GUI 是一款专为Unity游戏引擎设计的HTML渲染引擎,它使得在Unity中集成和展示HTML内容变得更为便捷。这个工具主要适用于那些希望在游戏中使用丰富的Web交互元素或者创建具有动态文本、...

    Unity3D 游戏开发 PDF完整版

    在本书《Unity3D游戏开发》中,作者详细介绍了Unity环境的搭建、编辑器使用以及GUI游戏界面的相关知识。书中还涵盖了使用C#和JavaScript语言构建游戏脚本的方法,并教授了如何在游戏中添加各种模型元素,如树、草、...

    unity中文参考手册

    - **字符串处理**:使用SubStrings来处理字符串数据,这是脚本编程中常见的需求。 #### 9. Unity启动与项目管理 - **Project选择**:在Unity启动时选择项目,以及对项目进行管理。 #### 10. Unity的其他功能 - **...

    Unity3D脚本:点击GUI按钮产生下一按钮2

    在 Unity3D 中,GUI 编程是通过 OnGUI() 函数实现的,该函数是一个特殊的函数, Unity3D 引擎会在每帧更新时调用该函数,以便在屏幕上绘制 GUI 元素。在 OnGUI() 函数中,我们可以使用 GUI 类的静态方法来绘制各种 ...

    Unity3D中文讲座

    讲座用5讲,约2小时的时间,详细介绍了Unity3D中图形用户界面(GUI)的设计与实现,涵盖了UI元素的创建、布局管理、交互逻辑、动画效果、适配不同屏幕尺寸等内容,帮助开发者提升游戏界面的美观性和可用性。...

    Unity3d 中文脚本使用手册

    例如,Component类和Behaviour类是Unity3D脚本编程中经常用到的基类;Transform类用于处理游戏物体的位置、旋转和缩放;Camera类负责游戏中的摄像机控制。 此外,手册中还涉及了AnimationState、AnimationEvent等...

    强大的Unity中文入门教程

    第五讲:“Unity GUI”讲解了Unity的用户界面系统,即UI元素的创建和管理。你将学习如何使用Unity的UI工具创建菜单、提示信息、计分板等,为玩家提供友好的交互体验。 第六讲:“Unity脚本概览”更深入地探讨脚本的...

Global site tag (gtag.js) - Google Analytics