Unity3D学习笔记-----2015-07-24(GUI---01)

GUI基础:

方法:Update(),受当前渲染效率影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time.deltaTime获得自上次Update以来经历的时间,只应该在Update()中使用deltaTime,OnGUI等里面不要使用

方法FixedUpdate():固定时间间隔被调用,通过Edit->ProjectSetting->time设置,一般把控制运动的代码写到FixedUpdate()中,避免跳帧的感觉出现,Time.fixedDeltaTime获得固定时间间隔

方法OnGUI():GUI部分是每帧擦除重绘的,只应该在OnGUI中绘制GUI

public class GUITest : MonoBehaviour
{
    string str1;
    private bool isClick;
    void Start()
    {
        str1 = "";
        isClick = false;
    }
    void OnGUI()
    {
        GUILayout.Label("欢迎来到Mr.D的世界");
        //帧:每一帧都会擦除上一帧的内容,并将内容重新绘制
        str1 = GUILayout.TextField(str1, GUILayout.Width(100));
        //按钮
        if(GUILayout.Button("点击", GUILayout.Width(100)))//当按钮被点击了,返回true
        {
            Debug.Log(1);
            isClick = true;           
        }
        if(isClick)
        {
            GUILayout.Label("按钮被点击了");
        }
    }
}

注意:控件也是系统定义好的类型,但是在GUI中并不是类实例化得到对象,而只是绘制,要区别于.Net中的控件

 

GUI常用控件

***文本域:void GUILayout.Label(string)

***文本框:string GUILayout.TextField(string)

***密码框:string GUILayout.PassworldField(pwd,'*'),第二个参数为掩码字符

***按钮:Button只有鼠标抬起才会返回true,这样用Button做发射子弹就不能按下一直发射,可以使用RepeatButton,这样按下期间可以一直发射子弹,也就是返回true

***Tab页:selectedToolBarld = GUILayout.Toolbar(selectedToolBarld.new string[]{"装备","经验","队友"}); 返回值为点击的按钮的序号

***复选框:isMuted = GUILayout.Toggel(isMuted,"静音");

***多行文本框:msgBody = GUILayout.TextArea(msgBody);

你可能感兴趣的:(unity3d)