代码改变世界

简单gui控制菜单教程

2013-03-17 14:31  zhaodacheng  阅读(545)  评论(0编辑  收藏  举报

前段一个小demo中用到的gui控制菜单。先发下最终的gui截图:

大体制作流程:
1、根据需要,在photoshop中设计出交互界面,当然,如果你不太注重美观的话,可以直接在untiy3d里进行gui外观实现,unity3d默认带有一套gui外观样式。
2、根据你所期望的交互需求,确定你要用到unity3d gui系统中哪些元素,如box、button等。在上图所示的画面中,用到了三种元素:Box,Button,SelectionGrid,三者各一,另外还有用到多个GUIStyle,即样式表,作用于前面三种元素。
3、针对显示需求,将psd文件简化合层,争取图片数用到最少。
4、一切准备就绪后,就可以开始写script了,写完附件到Main Camera上,如果用到GUIStyle,还要在属性面板中具体设定各参数。
下面开始具体的制作过程...

下面开始具体的制作过程。

1、确定代码

主要有两个区域,上部的按钮,及下方的子菜单部分。此处的交互就是点击上部按钮,显示或隐藏下部子菜单,所以此处用了两段代码来实现,显示隐藏是通过禁用下方gui代码文件来实现的,当然,也可以写的一个代码文件里。

2、代码讲解

此文件为display.js,用来实现上部按钮功能

var Pcontrol control;//声明脚本对象

var Pdisplay:int=0;//声明一变量,用来存储子菜单的显示状态

var PDbg:GUIStyle;//声明样式

function OnGUI () {

//实现Button代码,单击时切换显示状态变量

if (GUI.Button (Rect (10,0,279,30)," ",PDbg)) {

if(Pdisplay==0){

Pcontrol.enabled=false;

Pdisplay=1;

}else{

Pcontrol.enabled=true;

Pdisplay=0;

}

}

}

第二个脚本文件Pcontrol.js

//声明样式、背景图片、按钮列表、空数组

var customBox : GUIStyle;

var customButton:GUIStyle;

var bgImage : Texture2D;

var selectionGridInt : int = 0;

var selectionStrings : String[] = [" ", " ", " "];

//子菜单实现

function OnGUI () {

// Make a background box

GUI.Box (Rect (10,30,279,418)," ",customBox);

selectionGridInt = GUI.SelectionGrid (Rect (25, 54, 244, 134), selectionGridInt, selectionStrings, 1,customButton);

print(selectionGridInt);

}

代码完成后,附加到主摄像机上即可,然后设置各参数及变量

3、外观样式设置,共用到三个样式PDbg、customBox 、customButton,选择各样式,在属性面板中设置不同状态时的参数。

原文链接:http://www.cgjoy.com/forum.php?mod=viewthread&tid=33698

声明: 本文由( liuxiaoni )原创编译,转载请保留链接: 原创简单gui控制菜单教程