unity3d gui text4.6,游戏导出后不显示GUITEXT

Unity 3D游戏开发GUI高级控制之Button控件 -
- ITeye技术网站
博客分类:
Button控件又称为按钮控件,该控件是十分常见的控件之一,可以用来判断用户在程序中的一些操作行为,比如对话框中的“确定”和“取消”按钮等。
按钮共有三个基本状态组成:未点击状态、击中状态、点击后状态。一般情况下,游戏界面的按钮只监听“未点击状态”与“点击后状态”两种。
按钮展现方式分为两种:“普通按钮”和“图片按钮”。普通按钮为系统默认显示的按钮,而图片按钮可以设定按钮的背景图案。
下边代码示例,设置了三个按钮,第一个为图片按钮,第二个为文字按钮,第三个为连续按钮。此外还设置了按钮的文字颜色和背景颜色,并且监听按钮点击的事件并且在游戏屏幕中以文本框的形式显示用户点击的是图片按钮还是文字按钮。代码中还添加了一个时间计数器,当用户点击连续按钮后,计数器会记录按下按钮的时间,界面如下所示
详细代码如下
  #pragma strict
  //定义按钮贴图对象
  var bTexture:Texture2D;
  //定义提示信息变量
  private var str:S
  //定义时间计数器变量
  private var fTime:
  function Start () {
   //初始化赋值
   str = "请点击按钮!";
  function OnGUI () {
   //显示提示信息内容
   GUI.Label(Rect(10,10,Screen.width,30),str);
   if(GUI.Button(Rect(10,50,bTexture.width,bTexture.height),bTexture)){
//点击按钮修改提示信息
str = "你点击了图片按钮!";
   //设置按钮中文字的颜色
   GUI.color = Color.
   //设置按钮的背景色
   GUI.backgroundColor = Color.
   if(GUI.Button(Rect(10,130,70,30),"文字按钮")){
//点击按钮修改提示信息
str = "你点击了文字按钮!";
   //设置按钮中文字的颜色
   GUI.color = Color.
   //设置按钮的背景色
   GUI.backgroundColor = Color.
   if(GUI.RepeatButton(Rect(10,170,100,30),"按钮按下中")){
//点击按钮修改提示信息
str = "按钮按下中的时间"+fT
//时间计数器
上述代码中使用了方法添加按钮,当该方法返回时,表示按钮被按下了。使用方法可添加一个连续按钮,用于监听该按钮按下中的状态,当该方法返回时,表示按钮处于按下中。另外,使用可以设置文字的颜色,使用可设置按钮的背景色。
点击运行,结果如下图所示:
&!--EndFragment--&
浏览 13054
浏览: 125880 次
来自: 长沙
初学者 用这个来做 还是做不出来 QAQ
楼主好文!!!
.。。。。。。。。。。。
这都啥时候的文章了,现在不行了 获取不到密码了
抱歉,flash还在审批,没有链接地址最近在用unity3d 开发游戏,可是在开发环境中运行好好的,exe文件运行也挺正常的,可是用webplayer运行的时候 程序中的有些GUI不知道怎么就不显示,不知道怎么回事。在网上找好久也没找到解决方案,希望大哥大姐们帮忙哦 谢谢哦
问题补充:谢谢哦 我这边是因为读外面的文件xml 因为没读进去而导致的条件不符合没显示!
backstyle 写道现象一样;
我这里的情况是我用了 .net 的 Marshal类,换成 BitConverter OK;
Mutex 貌似也不能用;
问题补充:用unity3d来读取xml文件& 用webplayer运行 老是报这个错:XmlException: Text node cannot appear in this state.就是因为这个造成条件不符上面的GUI显示不了
有人解决过这个问题吗?
现象一样;
我这里的情况是我用了 .net 的 Marshal类,换成 BitConverter OK;
Mutex 貌似也不能用;
已解决问题
未解决问题16468人阅读
unity3d开发(20)
GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现,如果游戏有比较多的界面制作需求,可以通过编写编辑器脚本来制作适合自身需求的GUI编辑器,或者借助第三方的GUI插件,如NGUI。
Unity的GUI类提供了丰富的界面控件,可以将这些控件配合使用,GUI控件,如下图:
GUI代码需要在OnGUI函数中调用才能绘制,GUI的控件一般都需要传人Rect参数来指定屏幕绘制区域,例如Rect(0,10,200,300),对应的屏幕矩形区域左上角的坐标为(0,10),宽度为200,高度为300,在Unity GUI中,屏幕坐标系以左上角为原点
接下来我们看Label控件,Label控件适合用来显示文本信息或者图片,我们新建一个c#脚本,叫做TestGUI.cs,然后绑定到我们的Main Camera对象上,Label初始化代码如下:
void OnGUI()
//GUI.color = Color.
GUI.Label(new Rect (10, 10, 100, 200), &Hello World!&);
GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);
我们定于了两个label,一个显示文字,另一个显示了一张图片,如下图:
Box控件,Box控件用来绘制带有边框背景的文字或图片,代码如下:
void OnGUI()
//GUI.color = Color.
//GUI.Label(new Rect (10, 10, 100, 200), &Hello World!&);
//GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);
GUI.Box (new Rect (10, 10, Screen.width * 0.5f, Screen.height * 0.5f), &This is a title&);
GUI.Box (new Rect (150, 170, texture.width/4, texture.height/4), texture);
效果如下:
Button控件,Button控件用来绘制响应单击事件的按钮,代码如下:
GUI.Button (new Rect (10, 10, 150, 50), &这是一个文字按钮&);
//图片按钮
GUI.Button (new Rect (150, 100, texture.width/4, texture.height/4), texture);
效果如下图:
绘制一个文字图片的按钮,代码如下:
//绘制一个带图片和文字按钮
GUIContent guic = new GUIContent(&按钮&, texture);
GUI.Button(new Rect(10, 70, 150, 30), guic);
我们可以设置按钮的点击事件,代码如下:
GUI.Button (new Rect (10, 10, 150, 50), &这是一个文字按钮&);
//图片按钮
if(GUI.Button (new Rect (150, 100, texture.width/4, texture.height/4), texture))
Debug.Log(&--------aaa&);
//绘制一个带图片和文字按钮
GUIContent guic = new GUIContent(&按钮&, texture);
GUI.Button(new Rect(10, 70, 150, 30), guic);
当我们点击了按钮,就会在控制台输出打印的内容,
TextField控件,在游戏中,经常需要用到信息输入的窗口,比如聊天窗、用户信息的输入等;PasswordField控件用于绘制密码输入框,经常用于用户登录界面中;TextArea控件与TextField的用法类似,区别就是TextField是单行的,TextArea可以编辑多行的文字,创建的代码如下:
using UnityE
using System.C
public class TestGUI : MonoBehaviour {
public Texture2D
public string userN
public bool isS
// Use this for initialization
void Start ()
userName = &admin&;
password=&123&;
// Update is called once per frame
void Update () {
void OnGUI()
//GUI.color = Color.
//GUI.Label(new Rect (10, 10, 100, 200), &Hello World!&);
//GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);
//GUI.Box (new Rect (10, 10, Screen.width * 0.5f, Screen.height * 0.5f), &This is a title&);
//GUI.Box (new Rect (150, 170, texture.width/4, texture.height/4), texture);
GUI.Button (new Rect (10, 10, 150, 50), &这是一个文字按钮&);
//图片按钮
if(GUI.Button (new Rect (150, 100, texture.width/4, texture.height/4), texture))
Debug.Log(&--------aaa&);
//绘制一个带图片和文字按钮
GUIContent guic = new GUIContent(&按钮&, texture);
GUI.Button(new Rect(10, 70, 150, 30), guic);
userName=GUI.TextField (new Rect (10, 10, 150, 30), userName);
//'*'密码字符串的掩码字符
password=GUI.PasswordField (new Rect (10, 50, 150, 30), password, '*', 25);
GUI.TextArea(new Rect(10, 100, 150, 50),&abcderfasdasdasdasfasdaasdfdfsfsd&);
if (GUI.Button (new Rect (Screen.width / 2 - 50, Screen.height / 2 - 50, 100, 100), &登录&))
//判断登录
if (userName.Equals(&admin&) && password.Equals(&123&))
isSuccess=
isSuccess=
if (isSuccess)
GUI.Label(new Rect(10, 200, 100, 30), &登录成功!&);
GUI.Label(new Rect(10, 200, 100, 30), &登录失败!&);
}效果如下:
Toggle控件可以用于制作开关按钮,每次单击,它都会在开和关的状态之间切换,创建代码如下:
toggleTxt = GUI.Toggle (new Rect (10, 10, 100, 30), toggleTxt, &A Toggle text&);
toggleImg = GUI.Toggle (new Rect (10, 50, 50, 50), toggleImg, texture);
效果如下图:
ToolBar控件适用于绘制一组按钮,在这些按钮中同时只激活一个,可以用来制作工具栏,创建代码如下:
public int toolbarI
toolbarInt=GUI.Toolbar(new Rect(10,10,250,30),toolbarInt,new string[]{&功能一&,&功能二&,&功能三&
效果如下图:
Silder滑动条是一种很常用的界面元素,可用在音量调整、进度显示、数值调整的GUI界面中,在Unity中Slider控件分为水平和垂直2种,对应的GUI函数为HorizontalSlider和VerticalSlider,创建代码如下:
hSliderValue = GUI.HorizontalSlider (new Rect (50, 25, 100, 30), hSliderValue, 0.0f, 10.0f);
//显示水平滑动条数值
GUI.Label(new Rect(25,22,100,30),hSliderValue.ToString(&0.00&));
vSliderVaule = GUI.VerticalSlider (new Rect (25, 70, 30, 100), vSliderVaule, 0.0f, 10.0f);
//显示垂直滑动条数值
GUI.Label(new Rect(22,170,100,30),vSliderVaule.ToString(&0.00&));
效果如下图:
Scrollbar控件,滚动条Scrollbar常用于页面区域的滚动,例如文档浏览中,在Unity中Scrollbar控件分为水平和垂直2种,对应的GUI函数为HorizontalScrollbar和VerticalScrollbar,创建代码如下:
hSbarValue = GUI.HorizontalScrollbar (new Rect (25, 25, 100, 30), hSbarValue, 1.0f, 0.0f, 10.0f);
vSbarVaule = GUI.VerticalScrollbar (new Rect (25, 50, 30, 100), vSbarVaule, 1.0f, 10.0f, 0.0f);
效果如下图:
Unity默认的控件外观十分简单,在游戏开发过程中,开发者都会根据游戏的类型和内容来设计一套个性化的游戏界面,Unity可以通过配置GUISkin来更改控件的默认样式,制作出符合游戏风格的控件外观。依次打开菜单栏中的Assets-&Create-&GUI Skin来创建GUISkin,如下图:
单击GUISkin文件,在Inspector视图中可以对GUISkin的参数进行设置,假设现在需要更换按钮的背景图片,以及按钮上的字体大小等,单击Button折叠项,展开Button控件的样式参数,更改Normal、Hover、Active、On Normal、On Hover、On Hover、Font Size这几个参数,如下图:
然后我们在代码中创建一个button,代码如下:
public GUISkin myS
GUI.skin = myS
GUI.Button (new Rect (60, 50, 588 / 2, 288 / 2), &开始游戏&);
设置mySkin为我们刚才创建的GUISkin,绑定,点击后的效果如下图:
GUILayout自动布局,在Unity中GUI控件的布局方式有两种,一种为固定布局,即在绘制控件的时候将位置参数传人,指定控件的精确位置;另外Unity还支持控件的自动布局,自动布局适用于控件数量动态的情况,或者是有时候开发者不太在乎控件的精准位置,如果想使用自动布局,那么需要使用GUILayout类来代替前面使用的GUI类,并且去掉Rect()位置参数。
//自动布局
GUILayout.Button (&aaaaaaa&);
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:328731次
积分:3840
积分:3840
排名:第4724名
原创:61篇
评论:176条
(2)(1)(1)(2)(3)(20)(4)(2)(7)(2)(6)(16)}

我要回帖

更多关于 unity5 guitexture 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信