【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)

这篇具有很好参考价值的文章主要介绍了【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要源码请点赞关注收藏后评论区留言并且私信~~~

在游戏开发过程中,游戏界面占据了非常重要的地位,玩家启动游戏的时候,首先看到的就是游戏的UI,其中包含图片、按钮和高级控件等等,UGUI和GUI是Unity 3D中最常用的两个UI系统。

一、GUI简介

GUI是Graphical User Interface的缩写,Unity的图形界面系统能容易的快速创建出各种交互界面。游戏界面是游戏作品中不可或缺的部分,它可以为游戏提供导航,也可以为游戏内容提供重要的信息,同时是美化游戏的一种重要手段,Unity 3D内置了一套完整的GUI系统,提供了从布局、空间到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面,目前Unity 3D没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码实现

写GUI脚本,必须注意两个重要特性

1:GUI脚本控件必须定义在脚本文件的OnGUI事件函数中

2:GUI每一帧都会调用

二、常用基本控件使用

GUI基本控件及其含义如下

Label 绘制文本和图片

TextField 绘制一个单行文本输入框

TextArea 绘制一个多行文本输入框

PasswordField 绘制一个密码输入框

Button 绘制一个按钮

ToolBar 创建工具栏

ToolTip 用于显示提示信息

Toggle 绘制一个开关按钮

Box 绘制一个图形框

ScrollView 绘制一个滚动视图组件

Color 渲染GUI颜色

Slider 包含水平和垂直滚动条

DragWindow 用于实现屏幕内的可拖曳窗口

Window 窗口组件 在窗口中可以添加任意组件

下面使用GUI基本控件实现一个建议的用户登录界面

效果如下 点击上方按钮可以进行颜色的切换

unity 绘制gui,Unity 3D,unity,c#,3d,游戏引擎,ui

 unity 绘制gui,Unity 3D,unity,c#,3d,游戏引擎,ui

 unity 绘制gui,Unity 3D,unity,c#,3d,游戏引擎,ui

 部分代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_16_8 : MonoBehaviour
{
    private string userName = "";
    private string password = "";
    private string info = "";
    private bool manSex = false;
    private bool womanSex = false;

    Vector2 scrollPosition = Vector2.zero;

    int toolbarInt = 0;
    string[] toolbarStrings = { "红色", "绿色", "蓝色" };

    void OnGUI()
    {
        //Box组件 下面的内容放到Box组件里面
        GUI.Box(new Rect(290, 260, 300, 300), "");
        //Toolbar组件创建工具栏
        toolbarInt = GUI.Toolbar(new Rect(310, 270, 250, 30), toolbarInt, toolbarStrings);
        switch (toolbarInt)
        {
            case 0:
                GUI.color = Color.red;
                break;
            case 1:
                GUI.color = Color.green;
                break;
            case 2:
                GUI.color = Color.blue;
                break;
            default:
                break;
        }
        //Label组件绘制文本
        GUI.Label(new Rect(310, 310, 70, 20), new GUIContent("用户名:", "Label组件"));
        //TextArea组件绘制输入框
        userName = GUI.TextField(new Rect(380, 310, 200, 20), userName);
        GUI.Label(new Rect(310, 330, 70, 20), new GUIContent("密码:", "Label组件"));
        //PasswordField组件绘制密码输入框
        password = GUI.PasswordField(new Rect(380, 330, 200, 20), password, '*');
        //Toggle组件绘制开关按钮
        manSex = GUI.Toggle(new Rect(310, 370, 50, 20), manSex, "男");
        womanSex = GUI.Toggle(new Rect(350, 370, 50, 20), womanSex, "女");
        GUI.Label(new Rect(310, 420, 70, 20), new GUIContent("个人简介:", "Label组件"));
        //ScrollView组件
        scrollPosition = GUI.BeginScrollView(new Rect(380, 420, 200, 100), scrollPosition, new Rect(0, 0, 200, 300));
        info = GUI.TextArea(new Rect(0, 0, 200, 300), info);
        GUI.EndScrollView();
        //Button绘制按钮
        GUI.Button(new Rect(400, 530, 50, 20), new GUIContent("保存", "Button组件"));
        //ToolTip用户显示提示信息
        GUI.Label(new Rect(480, 530, 200, 40), GUI.tooltip);

        //Window组件和DragWindow组件
        Rect windowRect0 = new Rect(300, 600, 120, 50);
        Rect windowRectwRect1, DoMyWindow, "Green Window");
    }

    private void DoMyWindow(int id)
    {
        if (GUI.Button(new Rect(10, 20, 100, 20), "可拖动窗口"))
        {
            Debug.Log("color" + GUI.color);
        }
        GUI.DragWindow(new Rect(0, 0, 10000, 10000));
    }
}

三、GUILayout自动布局

使用GUILayout自动布局,让每个组件的宽度和高度按照一些字体的大小进行统一计算,采取靠左对齐或者靠右对齐,一个空间占据一行的原则进行布局

下面使用默认Rect定位方式排列Label

代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_16_9 : MonoBehaviour
{
    void OnGUI()
    {
        GUI.Label(new Rect(0, 0, 70, 20), "你好");
        GUI.Label(new Rect(0, 20, 70, 20), "世界");
        GUI.Label(new Rect(0, 40, 70, 20), "Hello");
        GUI.Label(new Rect(0, 60, 70, 20), "World");
    }
}

这时输出文字都是靠左对齐 不够美观

下面使用GUILayout进行自动布局

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test_16_10 : MonoBehaviour
{
    void OnGUI()
    {
        GUILayout.BeginArea(new Rect(400, 200, 300, 400));
        GUILayout.Label("你好");
        GUILayout.Label("世界");
        GUILayout.Label("Hello");
        GUILayout.Label("World");
        GUILayout.EndArea();
    }
}

这时输出文字会居中对齐 更加美观

创作不易 觉得有帮助请点赞关注收藏~~~文章来源地址https://www.toymoban.com/news/detail-695279.html

到了这里,关于【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 图形用户界面(GUI)框架有哪些

    Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。轻量级的跨平台图形用户界面(GUI)开发工具。 由于 Tkinter 是内置到 python 的安装包中 、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是

    2024年02月08日
    浏览(56)
  • 如何设计和构建一个PyQt图形用户界面(GUI)

    欢迎来到PyQt的世界!设计和构建一个图形用户界面(GUI)可以是一项令人兴奋且有趣的任务。 首先,你需要确保已经安装了PyQt。如果你还没有安装,可以通过以下命令在你的Python环境中安装: 现在,让我们开始设计你的第一个PyQt GUI! 第一步:创建窗口 想象一下,如果你

    2024年02月12日
    浏览(43)
  • Python tkinter(GUI编程)模块教程:打造出精美图形用户界面

    随着程序越来越复杂,命令行已经无法满足我们的需求,图形化界面已成为当前主流的界面设计。在Python中,tkinter是一种简单易用的GUI编程工具,可以帮助我们快速地创建图形用户界面。本文将通过实例详细介绍如何使用Python tkinter模块来打造出精美的图形用户界面。 安装

    2024年02月13日
    浏览(49)
  • MCU 的 TOP 15 图形GUI库:选择最适合你的图形用户界面(三)

    在嵌入式系统开发中,选择一个合适的 图形用户界面(GUI)库 是至关重要的。在屏幕上显示的时候,使用 现成的图形库 ,这样开发人员就不需要弄清楚底层任务,例如如何绘制像素、线条、形状,如果再高级一点,则可以绘制某些对象,例如窗口、按钮等。 前两期我们介

    2024年02月03日
    浏览(44)
  • 【Python GUI库】六个图形用户界面库优缺点及实例预览

    在Python中,有很多库可以帮助创建图形用户界面(GUI)。以下是一些流行的选择: Python的标准库之一,用于创建窗口、按钮、滑动条和其他常见的GUI元素。对于简单的应用程序,Tkinter可能就足够了。 Tkinter的优点: 1.Tkinter是Python的标准GUI库,易于学习和使用,提供了基本的GU

    2024年02月03日
    浏览(48)
  • Python实现交互窗口功能(Tkinter;面向对象的图形化用户界面(GUI)模块)(一)

    本文主要介绍Python中实现GUI的Tkinter模块以及模块中的控件及其使用 Python自带了tkinter 模块,面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法。 其图像化编程的基本步骤通常包括: 导入 tkinter 模块 创建 GUI 根窗体 添加人机交互控件并编写相

    2024年02月08日
    浏览(57)
  • 【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法

    大家好,今天给大家介绍基于matlab的语音信号变声处理系统设计与算法原理(论文+程序源码)。 运用matlab软件实现对声音的变声处理,利用离散付里叶变换进行频谱分析;设计数字滤波器组;通过时域和频域方法做出各种音效效果,实现变速(慢放、快放),变调(频谱左

    2024年02月04日
    浏览(62)
  • python如何做出图形界面,python图形化界面设计gui

    本篇文章给大家谈谈python编写图形化界面的工具,以及python如何做出图形界面,希望对各位有所帮助,不要忘了收藏本站喔。 大家好,小编来为大家解答以下问题,python如何做出图形界面,用python做图形用户界面,今天让我们一起来看看吧! 一.定义理解 Python自带了tkinter 模

    2024年02月20日
    浏览(55)
  • 第十一章:ROS图形界面与GUI

    Robot Operating System(ROS)是一个开源的操作系统,用于构建和管理机器人的软件。它提供了一系列的工具和库,以便开发者可以快速地构建和部署机器人的应用程序。ROS的图形界面和GUI(图形用户界面)是一种用于与机器人进行交互的方式,使得开发者和用户可以更容易地操作和控

    2024年03月27日
    浏览(62)
  • Linux环境下非GUI制作图形界面方法

    如题,即就是仅仅使用ANSI转义字符实现Linux环境的页面效果,如字体颜色、背景颜色、高亮、固定位置光标、将光标放到指定位置、隐藏字符串等等。 具体实现方法在如下代码中,使用方法在注释里可以看到。 // //

    2024年02月19日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包