`

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结构指定.
等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics