• 从零开始学习UNITY3D(GUI篇 群组视图控件)


    控件组可以看成一个大的容器,控件组里面的控件,相对位置已该控件组为基准,而不再已屏幕左上角为基准。

    下面来看一下代码实例及其效果截图:

    public class GUI2 : MonoBehaviour {
    	int toolbarInt=0;//代表默认第n-1个按钮是激活的
    	string[] toolbarstring={"工具","窗体","帮助"};//按钮名称个数和集合
    	int selectgrid=0;
    	string[] selectgridsring = {"grid 1","grid 2","grid 3","grid 4","grid 5"};
    	// Use this for initialization
    	void Start () {
    	
    	}
    	
    	// Update is called once per frame
    	void Update () {
    	
    	}
    	void OnGUI()
    	{
    		GUILayout.Button ("这是一个Gui按钮");
    		GUI.BeginGroup (new Rect (Screen.width/2-50, Screen.height/2-50, 600, 600));
    		toolbarInt = GUI.Toolbar (new Rect (0, 0, 220, 40), toolbarInt, toolbarstring);
    
    		selectgrid = GUI.SelectionGrid (new Rect (150, 60, 250, 80), selectgrid, selectgridsring, 2);//2列数,unity可自动缩放
    		//检测控件是否发生了改变
    		if (GUI.changed) {
    			print("某些控件发生了改变");		
    			//具体控件点击的改变
    			if(toolbarInt==1)
    			{
    				print("toolbar1被点击了");
    
    			}
    		}
    		GUI.EndGroup ();
    	}
    }
    

     

    GUI.EndGroup ();是结束距离他最近的GUI.BeginGroup();

    下面的我们可以利用控件组的嵌套来实现一些特殊的效果,如视频加载时候的缓冲条~

    具体代码如下:

    public class NextGroup : MonoBehaviour {
    
    public     Texture2D bgimg;
        public float play=1.0f;
        // Use this for initialization
        void Start () {
        
        }
        
        // Update is called once per frame
        void Update () {
            play -= 0.002f;
            if (play <= 0f) {
                play=1f;        
            }
        }
        void OnGUI()
        {
            GUI.BeginGroup (new Rect(0,0,256,32));
            GUI.Box (new Rect (0, 0, 256, 32),bgimg);
            GUI.BeginGroup (new Rect (0, 0, play * 256,32));
            GUI.Box (new Rect (0, 0, 256, 32),"");
            GUI.EndGroup ();
            GUI.EndGroup ();
        }
    }


    这里嵌套了2个控件组,然后根据每帧里面的box大小发生变化,从而实现我们想要的效果。

  • 相关阅读:
    Centos R安装
    python 排序函数L.sort()和sorted()
    系统评测指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F-Score
    linux exec使用小结
    linux 日志文件
    数据结构中的八大排序算法
    Boyer-Moore(BM)算法,文本查找,字符串匹配问题
    内存为程序分配空间的四种分配方式
    内部碎片、外部碎片
    函数调用过程栈帧变化详解
  • 原文地址:https://www.cnblogs.com/liuruitao/p/4271349.html
Copyright © 2020-2023  润新知