• 从零开始学习UNITY3D(GUI篇)


    邻近年底,心也有些散乱,加上工作忙了一阵,在达内培训的课程也落下了不少。对unity3d的热度似乎也有点点下降。痛定思痛,又在淘宝上买了写蛮牛网的视频。总之不管是用任何手段都要逼着自己不要浪费了培训的那些钱。言归正传,现在开启GUI篇章。

    GUI这东西在我脑子里,自动归结为.net的用户交互控件,实际上应该也就是这个样子,类似于button,lable,textbox....的这些东西在GUI里面都有。

    这一节讲一些简单的GUI。

    先来看效果图:

    1,红框部分,button按钮的text值随着在文本框的输入文本变化而变化,始终保持一致。

    2.Toggle其实是一个toggle控件,类似于winfrom的RadioButton,它的未知随着HorizontalScrollbar控件的拖动而拖动。

    代码其实挺简单的,如下:

    using UnityEngine;
    using System.Collections;
    
    public class Gui : MonoBehaviour {
    	public GUIStyle buttonstyle;
        string text="";
    	bool result;
    	float hsliderVale;
    	// Use this for initialization
    	void Start () {
    	
    	}
    	
    	// Update is called once per frame
    	void Update () {
    	
    	}
    	void OnGUI(){
    		hsliderVale = GUI.HorizontalScrollbar (new Rect(80, 100, 100, 30),hsliderVale,2,0,10);
    		result = GUI.Toggle(new Rect(10 * hsliderVale, 170, 100, 30),result,"Toggle");
    	         	text = GUI.TextField(new Rect (310, 330, 100, 40),text);
    				GUI.Button(new Rect(180,120,100,150),"这是一个button按钮","button");
    				GUI.Button(new Rect(110,120,200,210),"这是一个button按钮","toggle");
    				GUI.Label(new Rect(0,0,200,50),"box类型的lable","box");
    				GUI.Label (new Rect (150, 110, 200, 100), "buttonstyle");
    			 if (GUI.RepeatButton(new Rect (310, 220, 200, 100),text) )
    		    {
    	     		print("用户单击了重复按钮");		
    		    }
    
    	}
    }
    

    Rect()这个定位函数被多次用到,其具体的定义如下:

    Rect(x,y,w,h)
    x表示水平距离,即以左上角为0,0点,距离左边的距离
    y表示垂直距离,距离顶部的距离
    w表示这个矩形的宽度
    h表示这个矩形的高度

    UnityGUI控制是利用一类被称为OnGUI()的函数,只要在控制脚本激活的状态下,OnGUI()函数可以在每帧调用,就像Update( )函数一样。

  • 相关阅读:
    bzoj 2816: [ZJOI2012]网络 (LCT 建多棵树)
    bzoj 2157: 旅游 (LCT 边权)
    bzoj 3669: [Noi2014]魔法森林 (LCT)
    bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (LCT)
    bzoj 2002 : [Hnoi2010]Bounce 弹飞绵羊 (LCT)
    bzoj 3282: Tree (Link Cut Tree)
    模拟赛1
    Some tricks
    模拟赛简要题解与心得
    Noip 训练指南
  • 原文地址:https://www.cnblogs.com/liuruitao/p/4251494.html
Copyright © 2020-2023  润新知