01.Unity GUI基础

using UnityEngine;
using System.Collections;

public class GUI : MonoBehaviour
{
    private string strl;
    private string pwd;
    private int selectedToolBarld;
    private bool isMuted;
    private string msgBody;
    private float value;
    private Rect windowRect;
    private bool showWindow;
    // Use this for initialization
    void Start()
    {
        //Debug.Log("from start");//start方法只执行一次
        //start方法中一般都是写一些初始化的东西
        strl = "";
        pwd = ""; //记得初始化  不然会出现Object reference not set to an instance of an object
        selectedToolBarld = 0;
        isMuted = false;
        msgBody = "这里是多行文本框,你点个回车试试";
        value = 0f;
        showWindow = false;
        windowRect = new Rect(300, 300, 100, 50);
    }

    // Update is called once per frame
    void Update()
    {
        //Debug.Log("from update");//update方法每一帧执行一次
        
    }

    void OnGUI()
    {
        //文本域
        GUILayout.Label("文本域");

        //开启一个横向排列区域
        GUILayout.BeginHorizontal();
        GUILayout.Label("用户名:");
        //文本框
        //文本框这样直接写是不会出现东西的
        //帧:每一帧都会擦除上一帧绘制的内容,并将内容重新绘制
        //GUILayout.TextField("文本框");
        strl = GUILayout.TextField(strl,GUILayout.Width(100));
        //结束一个横向排列区域
        GUILayout.EndHorizontal();

        //开启一个横向排列区域
        GUILayout.BeginHorizontal();
        GUILayout.Label("密码:");
        //密码框
        pwd = GUILayout.PasswordField(pwd,'*',GUILayout.Width(100));
        //结束一个横向排列区域
        GUILayout.EndHorizontal();

        //按钮
        GUILayout.Button("我是按钮", GUILayout.Width(100));

        //Tab页
        selectedToolBarld = GUILayout.Toolbar(selectedToolBarld, new string[] { "装备","经验","队友"});
        switch (selectedToolBarld)
        {
            case 0: showLabel(selectedToolBarld);break;
            case 1: showLabel(selectedToolBarld); break;
            case 2: showLabel(selectedToolBarld); break;
            case 3: showLabel(selectedToolBarld); break;
            default:
                break;
        }

        //复选框
        isMuted = GUILayout.Toggle(isMuted, "静音");

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

        //滑动条
        //开启一个横向排列区域
        GUILayout.BeginHorizontal();
        GUILayout.Label("垂直滑动条"+value);
        value = GUILayout.VerticalSlider(value, 0f, 100f);
        value = GUILayout.VerticalScrollbar(value, 10f, 800f, 1f);
        //结束一个横向排列区域
        GUILayout.EndHorizontal();

        //绘制窗口
        if (GUILayout.Button("绘制窗口"))
        {
            showWindow = true;
        }
        if (showWindow)
        {
            windowRect = GUILayout.Window(1, windowRect, AddWindow, "设备");//所有关于GUI绘制的代码,都要直接或间接的写到OnGUI方法中
        }
    }

    private void AddWindow(int id)
    {
        //id表示窗口的编号,可以让一个脚本中弹出多个窗口,这些窗口可以共用一个回调函数
        if (id == 1)
        {
            if (GUILayout.Button("选择武器,关闭窗口"))
            {
                showWindow = false;//关闭,其实就是不再绘制
            }

        }
        //GUI.DragWindow();//new Rect(0,0,1000,1000)
    }

    private void showLabel(int selectedToolBarld)
    {
        GUILayout.Label("我是按钮" + selectedToolBarld, GUILayout.Width(100));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值