Unity3D:GUI的绘制

使用GUI我们可以十分方便并且简单的绘制出登录,登出,装备栏,属性栏等界面,这在游戏开发中是不可或缺的一部分。

在Unity3D引擎中,提供了Toggle,Button,ReapeatButton,PasswordField,TextArea等各种控件

在学习过程中可以参考官方的在线文档;https://docs.unity3d.com/ScriptReference/UI.Button.html




Unity3D:GUI的绘制



1.创建一个新的 scene

 

File------New Scene

 

 

2.创建一个脚本

 

命名为 MyGUI

 

之前还犯下了一个小错误直接命名为GUI,结果出了问题找不到函数还不知道如何解决,google后发现有人和我犯一样的错误..

先绘制一个BOX来将我们在视觉上框起来,这里用到Rect这个坐标变量

为了能够方便修改,还定义了Left和Top两个整形变量,框体是从左上角开始绘制的,因此这里的坐标也是左上角的坐标

 

Rect(x轴坐标,y轴坐标,宽度,高度)

 

Box的绘制参考:

GUI.Box(new Rect(Left-15, Top -10, 150, 300), "Login");

 

Login就是标题的名称

 

 

Label文本的绘制:

GUI.Label(new Rect(Left, Top + 80, 100, 20), "User:");

 

 

TextArea的绘制:

 

在这里需要先定义一个全局变量UserName,因为我们的函数是写在Update中的,每帧都会执行一次。

这里这样写,将使得返回值赋予给UserName

 

UserName = GUI.TextArea(new Rect(Left, Top + 100, 100, 20), UserName);

 


Toggle的绘制:

Toggle是一个开关变量,返回值为布尔型,因此这里要在全局定义一个bool变量

 

两个Toggle型切换的写法如下:

LoginRoot=GUI.Toggle(new Rect(Left + 50, Top+ 160, 50, 20),LoginRoot,"User");

 LoginRoot= GUI.Toggle(new Rect(Left + 50, Top + 180, 80, 20), !LoginRoot, "Manager");








MyGUI.cs


using UnityEngine;
using System.Collections;

public class MyGUI : MonoBehaviour {
    private string UserName = "";
    private string Key = "";
    private bool LoginRoot = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
        
    ///
    /// 每当重绘时候都会执行这一个方法
    ///
    void OnGUI()
    {
        int Left = 205;
        int Top = 100;
        GUI.Box(new Rect(Left-15, Top -10, 150, 300), "Login");
        if (GUI.Button(new Rect(Left, Top +235, 70, 20), "Start"))
            print("Button Check");
       // GUI.RepeatButton(new Rect(Left,Top + 60,100, 20), "RepeatButton");
        GUI.Label(new Rect(Left, Top + 80, 100, 20), "User:");
        UserName = GUI.TextArea(new Rect(Left, Top + 100, 100, 20), UserName);
        GUI.Label(new Rect(Left, Top + 120, 100, 20), "Password");
        Key = GUI.PasswordField(new Rect(Left, Top + 140, 100, 20),Key,'*' );
        LoginRoot=GUI.Toggle(new Rect(Left + 50, Top+ 160, 50, 20),LoginRoot,"User");
        LoginRoot= GUI.Toggle(new Rect(Left + 50, Top + 180, 80, 20), !LoginRoot, "Manager");



    }
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值