对GUI类的了解

1、GUI.backgroundColor 背景颜色

1、理解:全局染色由GUI渲染的所有背景元素,得到乘以颜色。

2、代码:

void OnGUI()
    {
        GUI.backgroundColor = Color.green;
        GUI.Button(new Rect(10,110,70,30),"Botton");

    }

3、显示效果:

 

2、GUI.changed 判断改变

1、理解:返回true,如果任何控件改变了输入数据的值。

2、代码:

 string str= "修改我试试";

    void OnGUI()
    {
        //绘制一个文本字段,当被修改的时候打印消息
        str = GUI.TextField (new Rect (10, 10, 200, 20), str, 25);
        if (GUI.changed)    
        //当你修改的时候,文本的时候出现这个信息。
        Debug.Log("文本字段被修改");

 }

3、显示效果

未修改之前效果,不会打印“文本字段被修改”

修改之后的效果,打印了“文本字段被修改”

 

3、GUI.color 颜色

1、理解:全局GUI染色,将影响背景和文本颜色。

2、代码:

    void OnGUI()
    {

        //用黄色染色所有GUI元素
        GUI.color = Color.yellow;
        GUI.Label(new Rect(10, 10, 100, 20), "Hello World!");
        GUI.Box(new Rect(10, 50, 50, 50), "A BOX");
        GUI.Button(new Rect(10, 110, 70, 30), "A button");

    }

3、显示效果

 

4、GUI.contentColor 内容颜色

1、理解:全局染色由GUI渲染的所有文本,得到乘以颜色。

2、代码:

  void OnGUI()
    {

        GUI.contentColor = Color.yellow;
        GUI.Button(new Rect(512,360,70,30),"Button");

    }

 

3、显示效果

5、GUI.depth 深度

1、理解:当前执行的GUI行为的深度排序,当你有不同的脚本同时运行,设置这个值来确定排序。注意:0是最高层

2、代码:

using UnityEngine;

using System.Collections;

public class example1: MonoBehaviour
{

    public static int num = 1;
    public static Color color = Color.yellow;
    void OnGUI()
    {
        GUI.contentColor = color;
        GUI.depth = num;
        if (GUI.RepeatButton(new Rect(0, 0, 100, 100), "GoBack"))
        {
            num = 1;
            example2.num = 0;
            color = Color.yellow;
            example2.color = Color.red;
        }
    }
}
 

 

using UnityEngine;
using System.Collections;

public class example2 : MonoBehaviour
{

    public static int num = 0;
    public static Color color = Color.red;
    void OnGUI()
    {
        GUI.contentColor = color;
       
        if (GUI.RepeatButton(new Rect(50, 50, 100, 100), "GoBack"))
        {
            num = 1;
            example1.num = 0;
            color = Color.yellow;
            example1.color = Color.red;
        }

    }
}

 

3、显示效果:

 

6、GUI.enabled 是否启用?

1、理解:

判断GUI是否启用了。

设置为false   禁用所用GUI互动,所有控件将被绘制半透明,   但可以用代码控制输入。

 

2、代码:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    string str = "修改我试试";

    void OnGUI()
    {
        GUI.enabled = false;
        //绘制一个文本字段,当被修改的时候打印消息
        str = GUI.TextField(new Rect(10, 10, 200, 20), str, 25);

        if (Input.GetKeyDown(KeyCode.A))
        {
            str = "我修改了";
        }
        if (GUI.changed)
            //当你修改的时候,文本的时候出现这个信息。
            Debug.Log("文本字段被修改");

    }
}

3、显示效果:

改为fale之前效果 :可以和用户交互

改为fale之后效果:和用户不可交互

 

转载于:https://my.oschina.net/u/2874878/blog/736359

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值