求解U3D中GUI.backgroundColor对按钮背景设置颜色不起效果

yxlovemoney 2014-07-08 06:35:45
首先贴上相关代码


#pragma strict
// 按钮贴图
var buttonTexture : Texture2D;
// 提示信息
private var str : String;
// 时间计数器
private var frameTime : int;

function Start () {
// 初始化赋值
str = "请你点击按钮";
}

function OnGUI(){
// 显示提示信息内容
GUI.Label(Rect(10, 10, Screen.width, 30), str);
// GUI.Button--设置一个按钮,返回TRUE表示被按下
if (GUI.Button(Rect(10, 50, buttonTexture.width, buttonTexture.height), buttonTexture))
{
// 点击按钮修改提示信息
str = "你点击了图片按钮";
}
// 设置按钮中文字的颜色
GUI.color = Color.green;
// 设置按钮的背景色
GUI.backgroundColor = Color.red;

if (GUI.Button(Rect(10, 200, 70, 30), "文字按钮"))
{
// 点击按钮修改提示信息
str = "你点击了文字按钮";
}

// 设置按钮中文字颜色
GUI.color = Color.yellow;
// 设置按钮背景色
GUI.backgroundColor = Color.black;

if (GUI.RepeatButton(Rect(10, 250, 100, 30), "按钮按下中"))
{
// 点击按钮修改提示信息
str = "按钮按下中的时间:" + frameTime;
// 时间计数器
frameTime++;
}
}



然后得到下面这个效果


现在问题是GUI.backgroundColor的设置对中间这个按钮不起作用,
求教这是什么问题? 不会是BUG吧?
...全文
1050 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
嗯呢,我觉得GUI这块你可以随便看看就跳过去吧,除非你真的就需要一点非常简单的界面,实际成熟项目里没有人用这个的,这是个鸡肋功能。自由度差,性能低。。。
yxlovemoney 2014-07-08
  • 打赏
  • 举报
回复
引用 1 楼 candycat1992 的回复:
看了下,的确是没有用的,至于bug嘛,据说4.0以后的GUI用C++重写了,有点bug正常。 但是我觉得跟你的使用也是有问题的,GUI.color这个是设置所有的GUI颜色的,包括背景和文字。如果你只想设置文字的话,还是用GUI.contentColor吧,我试过了,用这个是正常的。 最后,不建议你用这种原生的onGUI()做界面,后面会遇到很多问题的,而且对性能也不好哦。还是用一些界面插件,或者它的2D支持吧
这样啊,看来要注意的东西还挺多的。 这代码是从书上抄过来的,也许就是因为C++重写引起的问题吧, 那暂时不管了
  • 打赏
  • 举报
回复
看了下,的确是没有用的,至于bug嘛,据说4.0以后的GUI用C++重写了,有点bug正常。 但是我觉得跟你的使用也是有问题的,GUI.color这个是设置所有的GUI颜色的,包括背景和文字。如果你只想设置文字的话,还是用GUI.contentColor吧,我试过了,用这个是正常的。 最后,不建议你用这种原生的onGUI()做界面,后面会遇到很多问题的,而且对性能也不好哦。还是用一些界面插件,或者它的2D支持吧

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧