【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」

【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。本文主要介绍传统的GUI。而最新加入的UGUI模块将在下一讲中介绍。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。本文主要介绍传统的GUI。而最新加入的UGUI模块将在下一讲中介绍。

 

1  Label控件

Label控件可以将字符串信息展示在游戏界面上。

GUI.Label(new Rect(10,10,100,30),"学习GUI");//将字符串显示在屏幕上


 

2  Button控件

Button生成一个按钮,可以检测用户鼠标点击。

if(GUI.Button(newRect(10,200,100,30),"普通按钮"))
{
   Debug.Log("按下了按钮。");
}
if (GUI.RepeatButton(new Rect(10, 250, 100,30), "连续按钮"))
{
   Debug.Log("正在按按钮!");
}

 

3  TextField文本输入框

可以输入文字等,如用户名和密码。

editName = GUI.TextField(new Rect(150, 40,200, 30), editName, 15);
editPassword = GUI.PasswordField(newRect(150,80,200,30),editPassword,"*"[0],15);

 

4  Slider滑动条

滑动条上的滑块位置可以表明对应的数值。

toolBarValue0 = GUI.VerticalSlider(newRect(200,200,30,100),toolBarValue0,100,0);
toolBarValue1 = GUI.HorizontalSlider(newRect(200,180,100,30),toolBarValue1,0,100);  

 

5  GUI中绘制贴图

GUI.DrawTexture(newRect(10,50,100,80),tex);  //绘制贴图

运行效果

【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」

完整脚本

using UnityEngine;
using System.Collections;

public class StudyGUI : MonoBehaviour {

    public Texture tex;
    string editName;
    string editPassword;
    float toolBarValue0;
    float toolBarValue1;

    void Start()
    {
        editName = "请输入用户名";
        editPassword = "请输入密码";
        toolBarValue0 = 0;
        toolBarValue1 = 0;
    }


    void OnGUI()
    {
        GUI.Label(new Rect(10,10,100,30),"学习GUI"); //将字符串显示在屏幕上
      
        GUI.DrawTexture(new Rect(10,50,100,80),tex);  //绘制贴图

        //检测按钮
        if(GUI.Button(new Rect(10,200,100,30),"普通按钮")) 
        {
            Debug.Log("按下了按钮。");
        }
        //检测连续按钮
        if (GUI.RepeatButton(new Rect(10, 250, 100, 30), "连续按钮"))
        {
            Debug.Log("正在按按钮!");
        }

        //设置文本输入框
        editName = GUI.TextField(new Rect(150, 40, 200, 30), editName, 15);
        editPassword = GUI.PasswordField(new Rect(150,80,200,30),editPassword,"*"[0],15);
        //垂直和水平滑动条
        toolBarValue0 = GUI.VerticalSlider(new Rect(200,200,30,100),toolBarValue0,100,0);
        toolBarValue1 = GUI.HorizontalSlider(new Rect(200,180,100,30),toolBarValue1,0,100);     
    }
}

小结

本文介绍了几种最简单的GUI控件的使用方法,其他的控件如ToolBar、ScrollView等没有介绍到,感兴趣的读者可以在掌握本文讲述的基本控件的基础上,继续深入研究其他控件。当然现在很多开发中,这种基本的GUI已经用得不多了,UGUI是新一代的交互方式,具有更加灵活的使用情境,值得继续探究。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169343.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 年月日软件测试用例的设计,时钟——黑盒测试用例设计实例

    年月日软件测试用例的设计,时钟——黑盒测试用例设计实例电子时钟模块在很多系统上都会背集成,是一个运用比较广泛的模块,针对电子时钟,我们应该当如何设计测试用例呢?其实写用例,除了书上说的几种设计方法,每个人也有自己偏好的套路。比如某些人喜欢用先用边界再用等价,有些人喜欢先等价后再用边界,这些套路都是没有大的区别的,只是个人的逻辑思维方式不同而已。我说说自己的套路吧:确定测试目标(其实就是确定测试用例的粒度)——提取测试元素——分类(其实就是一个整体的等…

    2022年5月23日
    107
  • linux系统休眠唤醒_centos休眠后怎么唤醒

    linux系统休眠唤醒_centos休眠后怎么唤醒背景介绍:睡眠/唤醒是嵌入式Linux非常重要的组成部分,因为优秀的睡眠唤醒机制可以是嵌入式设备尽可能的进入休眠状态,来延长电池的续航时间(这在移动终端消费类电子设备中是非常重要和有意义的!!)。但标准的Linux睡眠唤醒机制有其自身的一些缺陷(所有模块必须同时睡下或者唤醒),在某些情况下,这会导致能耗的白白浪费。因此Android在标准Linux睡眠唤醒的机制上作了新的改动(wake_lock唤…

    2026年1月18日
    5
  • Navicat Premium15安装与激活(完整激活版)

    Navicat Premium15安装与激活(完整激活版)NavicatPremium15安装与激活(完整激活版)引文:NavicatPremium15安装与激活(完整激活版)注:该文章用于下载软件包及激活成功教程包引文1:NavicatPremium15安装与激活(完整激活版)注:该文章用于下载软件包及激活成功教程包,激活全过程…

    2022年10月13日
    2
  • volatile关键字作用

    volatile关键字作用一、作用简述内存可见性:保证变量的可见性:当一个被volatile关键字修饰的变量被一个线程修改的时候,其他线程可以立刻得到修改之后的结果。当一个线程向被volatile关键字修饰的变量写入数据的时候,虚拟机会强制它被值刷新到主内存中。当一个线程用到被volatile关键字修饰的值的时候,虚拟机会强制要求它从主内存中读取。 屏蔽JVM指令重排序(防止JVM编译源码生成class时使用重排序)…

    2022年6月1日
    48
  • PD快速充电协议(转)[通俗易懂]

    PD快速充电协议(转)[通俗易懂]来源-作者@:http://www.elecfans.com/d/647097.html建议读者阅读原文,确保获得完整的信息1.PD充电协议是什么意思    PD充电协议是USB-IF组织公布的功率传输协议,它可以使目前默认最大功率5V/2A的type-c接口提高到100W,同时谷歌宣布Android7.0以上的手机搭载的快充协议必须支持PD协议,意在统一快充市场。2.PD协议快充是什么意思   …

    2025年8月8日
    4
  • 如何用两个栈实现一个队列

    如何用两个栈实现一个队列如何实现使用两个栈实现一个队列呢 这里主要还是自己的思想问题 在这里我们首先整理一下自己的思维 1 首先准备两个栈 栈 A 与栈 B2 栈 A 专门用来完成入队列操作 栈 B 专门用来出队列与取队首元素操作 3 每次入队列操作时 首先得判断 B 栈是否为空 不空则将 B 栈元素全都依次入 A 栈 最后继续入新元素 即将要入栈元素添加到栈 A 4 每次出队列与取队首元素操作时 将 A 栈中的元素依次入 B 栈 出队列即取出 B 栈中的元素 取队首元素即取 B 栈栈顶元素即可 importjava util Stack public

    2025年10月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号