【unity游戏开发介绍之UGUI篇】UGUI概述和基础使用

注意:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发介绍之UGUI篇】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

前言

1、UI系统的重要性

UI是游戏中最重要的组成部分之一,无论是2D还是3D游戏,绝大多数游戏功能都与UI相关,UI开发是游戏开发中的核心技能,贯穿整个开发周期。良好的UI系统设计对游戏体验至关重要。

Unity的UI系统提供了多种解决方案,主要包括IMGUI(GUI)、NGUI、UGUI(Unity UI)、FGUI以及最新推出的UIToolkit。目前,UGUI(Unity UI) 仍然是游戏开发中最主流、应用最广泛的UI方案,因其与Unity引擎深度集成、功能完善且学习曲线平缓。

本专栏将重点探究UGUI的核心功能与实践技巧,帮助开发者快速掌握游戏UI的开发流程。若对其他UI系统感兴趣,可参考官方文档或社区资源进一步学习。

其他UI系统也各有特点:

  • GUI 适合编辑器扩展和快速原型开发。

  • NGUI 作为早期第三方插件曾广泛使用,现已逐渐被UGUI取代。

  • FGUI 更适合需要复杂动画和跨平台UI的团队。

  • UIToolkit 是Unity新一代UI工具,更适合编辑器工具和运行时UI的混合开发场景。

2、UGUI概述

2.1 基本定义

  • 官方名称:Unity UI
  • Unity引擎内置的UI系统
  • 基于GameObject的UI解决方案
  • 专为游戏内UI设计,不能用于编辑器扩展开发
  • 是目前Unity 商业游戏开发中使用最广泛的UI系统开发解决方案

2.2 UGUI发展历史

  1. Unity4.6之前:

    • 官方仅提供基础的GUI系统用于游戏UI的开发
    • 民间大佬开发的第三方插件NGUI因为更为高级和方便,成为主流解决方案,但是需要付费购买。
  2. Unity4.6版本:

    • Unity官方招募NGUI作者加入团队
    • 协助Unity开发出UGUI系统
  3. Unity5时代:

    • 由于UGUI刚推出后功能不够完善,所以经历了较长的过渡期。
    • 到Unity5时代UGUI功能逐渐完善,开始全面普及成为行业标准

3、学习UGUI的必要性

  • 至今哪怕是现在新推出的unity6,UGUI仍是Unity游戏开发中最流行的UI解决方案
  • 被绝大多数商业游戏公司采用
  • Unity官方持续维护更新
  • 掌握UGUI是Unity开发者必备的核心技能

4、UGUI核心优势

  1. 完全集成于Unity编辑器中
  2. 基于Canvas的渲染系统
  3. 支持多分辨率自适应
  4. 提供丰富的内置UI组件
  5. 强大的事件系统
  6. 与Unity其他系统无缝集成

一、如何在unity中使用UGUI

直接在Hierarchy窗口中右键,选择UI。UI中所有内容都是UGU相关控件

我们随便创建一个UGU控件,比如我这里添加一个Image(图像)

会发现unity自动为我们添加了两个对象------Canvas画布和EventSystem事件系统对象,且UGU控件作为Canvas画布对象的子集。我们也可以先主动创建Canvas画布和EventSystem事件系统对象,再在Canvas下创建UI控件。

二、UGUI基础组件

1、Canvas对象上依附的组件

  • RectTransform:Ul对象位置锚点控制组件,主要用于控制位置和对其方式
  • Canvas:画布组件,主要用于渲染UI控件
  • Canvas Scaler:画布分辨率自适应组件,主要用于分辨率自适应
  • Graphic Raycaster:射线事件交互组件,主要用于控制射线响应相关

2、EventSystem对象上依附的组件

EventSystemInput System UI Input Module:玩家输入事件响应系统和独立输入模块组件,主要用于监听玩家操作。

注意:值得注意的是,如果你使用的是低版本的unity或者没有使用unity的新输入系统inputsystem,可能找不到Input System UI Input Module组件,取而代之的是Standalone Input Module组件。具体可以参考:【unity游戏开发之InputSystem------07】InputSystem+UGUI配合使用

三、2D视图和矩形工具

切换场景为2D视图,多使用矩形工具,可以很方便我们进行UI的编辑开发。

四、UGUI的源码

UGUI的源码我们是可以查看的,随着自己的能力提升,以后可以深入去了解一下它的一些逻辑实现。

1、方法一 安装目录查看

Unity安装目录下\Editor\Data\Resources\PackageManager\BuiltlnPackages\com.unity.ugui比如我们就在D:\UnityHub\Unity\Editor\6000.0.42f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui

2、方法二 直接在unity的项目工程中查看

这里的unity UI其实就是

我们可以右键在资源管理器中显示查看


专栏推荐

地址
【零基础入门unity游戏开发------C#篇】
【零基础入门unity游戏开发------unity通用篇】
【零基础入门unity游戏开发------unity3D篇】
【零基础入门unity游戏开发------unity2D篇】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity框架/工具集开发】
【unity游戏开发介绍之InputSystem篇】
【unity游戏开发介绍之动画篇】
【unity游戏开发介绍之UGUI篇】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

相关推荐
qq_365911602 小时前
GPT-4、Grok 3与Gemini 2.0 Pro:三大AI模型的语气、风格与能力深度对比
开发语言
Susea&3 小时前
数据结构初阶:队列
c语言·开发语言·数据结构
慕容静漪3 小时前
如何本地安装Python Flask并结合内网穿透实现远程开发
开发语言·后端·golang
ErizJ3 小时前
Golang|锁相关
开发语言·后端·golang
GOTXX3 小时前
【Qt】Qt Creator开发基础:项目创建、界面解析与核心概念入门
开发语言·数据库·c++·qt·图形渲染·图形化界面·qt新手入门
电商api接口开发3 小时前
如何在C#中使用LINQ对数据库进行查询操作?
数据库·c#·linq
搬砖工程师Cola3 小时前
<C#>在 .NET 开发中,依赖注入, 注册一个接口的多个实现
开发语言·c#·.net
巨龙之路3 小时前
Lua中的元表
java·开发语言·lua
徐行1104 小时前
C++核心机制-this 指针传递与内存布局分析
开发语言·c++
划水哥~4 小时前
Kotlin作用域函数
开发语言·kotlin