对GUI类的了解

原创
2016/08/23 00:35
阅读数 332

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之后效果:和用户不可交互

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部