unity中的UI系统---GUI
一、工作原理和主要作用
1.GUI是什么?
即即时模式游戏用户交互界面(IMGUI),在unity中一般简称为GUI,它是一个代码驱动的UI系统。
2.GUI的主要作用
2.1作为程序员的调试工具,创建游戏内调测试工具
2.2为脚本组件创建自定义检视面板
2.3创建新的编辑器窗口和工具以拓展Uity本身(一般用作内置游戏工具)
注意:不要用它为玩家制作UI功能
3.GUI的工作原理
在继承MonoBehaviour的脚本中的特殊函数里,调用GUI提供的方法,类似生命周期函数。

二、基本控件
1.文本和按钮控件
1.1GUI控件绘制的共同点

1.2文本控件
GUI的原点在左上角
基本使用:文字,图片

1.3按钮控件

2.多选框和单选框


3.输入框和拖动条
3.1输入框

3.2拖动条

4.图片绘制和框
4.1图片绘制

4.2框绘制

三、复合控件
1.工具栏和选择网络
1.1工具栏

1.2选择网络

2.滚动视图和分组
2.1分组

2.2滚动列表

3.窗口相关
3.1窗口


3.2模态窗口


3.3拖动窗口


四、自定义整体样式
1.自定义皮肤Guiskin
1.1全局颜色

1.2整体皮肤样式


2.Guilayout自动布局
2.1GUILayout 自动布局

2.2GUILayoutOption 布局选项

五、总结
GUI优点:简单快捷,代码控制
缺点:重复工作量繁多,控件绘制相关代码很多,最大缺点是必须运行时才能去看结果,不支持分辨率自适应
相关文章:
unity中的UI系统---GUI
一、工作原理和主要作用 1.GUI是什么? 即即时模式游戏用户交互界面(IMGUI),在unity中一般简称为GUI,它是一个代码驱动的UI系统。 2.GUI的主要作用 2.1作为程序员的调试工具,创建游戏内调测试工具 2.2为…...
鸿蒙Flutter实战:15-Flutter引擎Impeller鸿蒙化、性能优化与未来
Flutter 技术原理 Flutter 是一个主流的跨平台应用开发框架,基于 Dart 语言开发 UI 界面,它将描述界面的 Dart 代码直接编译成机器码,并使用渲染引擎调用 GPU/CPU 渲染。 渲染引擎的优势 使用自己的渲染引擎,这也是 Flutter 与其…...
C语言冒泡排序教程简介
冒泡排序(Bubble Sort)是一种简单的排序算法,因其工作原理像气泡一样逐渐上浮而得名。其基本思想是通过一轮一轮地比较相邻的元素,将较大的元素逐步“冒泡”到数组的尾部。 在本篇博客中,我们将详细讲解冒泡排序的基本…...
Fabric链码部署测试
参考链接:运行 Fabric 应用程序 — Hyperledger Fabric Docs 主文档 (hyperledger-fabric.readthedocs.io) (2)fabric2.4.3部署运行自己的链码 - 知乎 (zhihu.com) Fabric2.0测试网络部署链码 - 辉哥哥~ - 博客园 (cnblogs.com) 1.启动测试…...
k620老显卡,装cuda.等。
CUDA安装教程(超详细)-CSDN博客 1.下载支持12.0以上的驱动 NVIDIA RTX Driver Release 550 R550 U12 (553.50) | Windows 11 解压。安装。一路下一步。查看结果 2.下载 cuda CUDA Toolkit Archive | NVIDIA Developer 安装cuda时,第一次…...
网站常用功能模块-鉴权
一:JWT是什么? 常用鉴权方式有很多种,今天主要介绍基于token的鉴权方式JWT(Json JSON Web Token)。因为这种方式实现起来方便快捷。整体实现逻辑如下 第一次登陆时,前端携带账号和密码请求登录接口。服务…...
直接插入排序、折半插入排序、2路插入排序、希尔排序
本篇是排序专栏博客的第一篇,主要探讨以 “插入” 为核心思想的排序算法该如何实现 文章目录 一、前言二、直接插入排序1. 算法思想与操作分析2. 代码实现version 1version 2 3. 复杂度分析 三、折半插入排序1. 算法思想与操作分析2. 代码实现3. 复杂度分析 四、2路…...
FQ-GAN代码解析
主要看 model 、loss 和 data 部分如何实现和处理的。 model—VQ_modelsVQModelEncoderVectorQuantizerDecoder loss—VQLoss_triple_codebook model—VQ_models 创建vq_model直接根据传入的模型压缩倍率8/16初始化对应的VQ_8/VQ_16,两者都是初始化一个VQModel的类…...
如何恢复已删除的 Telegram 消息 [iOSamp;Android]
Telegram 是一款功能强大的消息应用程序,因其易用性、隐私保护和众多炫酷功能而深受用户喜爱。然而,有时我们会不小心删除重要的消息。在这种情况下你应该做什么? 本文将为您提供简单有效的解决方案来恢复 Telegram 上已删除的消息ÿ…...
asp.net core中的 Cookie 和 Session
在 Web 开发中,用户会话管理是非常重要的,尤其是在需要保持用户状态和身份验证的应用中。ASP.NET Core 提供了多种状态管理技术,如 Cookie 和 Session,它们可以帮助你管理用户会话、存储数据并实现用户身份验证等功能。下面将详细…...
Python实现一个简单的 HTTP echo 服务器
一个用来做测试的简单的 HTTP echo 服务器。 from http.server import HTTPServer, BaseHTTPRequestHandler import jsonclass EchoHandler(BaseHTTPRequestHandler):def do_GET(self):# 构造响应数据response_data {path: self.path,method: GET,headers: dict(self.headers…...
Ruby 中文编码
Ruby 中文编码 在 Ruby 编程语言中处理中文编码是一个常见的需求,尤其是在中国和其他使用中文的地区。Ruby 是一种动态、开放源代码的编程语言,它支持多种字符编码,包括中文编码。本文将探讨在 Ruby 中处理中文编码的几种方法,以…...
淘金优化算法的信息共享与更新机制改进
淘金优化算法作为一种模拟自然界淘金过程的启发式搜索算法,在解决复杂优化问题时展现出独特优势。然而,其性能在很大程度上依赖于信息共享与更新机制的有效性。传统机制在面对高维、多模态等复杂问题时,往往存在信息交流不畅、更新滞后等问题,导致算法陷入局部最优或收敛速…...
Python中的ast.literal_eval:安全地解析字符串为Python对象
Python中的ast.literal_eval:安全地解析字符串为Python对象 什么是ast.literal_eval?为什么说它是“安全”的? 如何使用ast.literal_eval?示例1:将字符串转换为列表示例2:将字符串转换为字典示例3ÿ…...
【AI数学基础】线性代数:内积和范数
(观前提醒,这是工科AI相关的数学基础的学习笔记,不是数学专业的文章,所以没有严谨的证明和定义,数院大神请勿批评) 2. 内积和范数 2.1 内积的定义 从代数的角度来说,内积是两个向量之间的一种…...
Go语言的 的泛型(Generics)核心知识
Go语言的泛型(Generics)核心知识 引言 在编程语言的发展历程中,泛型是一项重要的特性。它使得程序员能够编写更加灵活和可重用的代码,减少了代码重复,提高了类型安全性和性能。从最初的C和Java,到现代的R…...
C++vector
1. vector 的介绍及使用 1.1vector的介绍 vector的文档介绍 1.vector是表示可变大小数组的序列容器 2.就像数组一样,vector也采用的连续存储空间来存储元素,也就是意味着可以采用下标对vector 的元素进行访问,和数组一样高效但是又不像数组…...
如何配置【Docker镜像】加速器+【Docker镜像】的使用
一、配置Docker镜像加速器 1. 安装/升级容器引擎客户端 推荐安装1.11.2以上版本的容器引擎客户端 2. 配置镜像加速器 针对容器引擎客户端版本大于1.11.2的用户 以root用户登录容器引擎所在的虚拟机 修改 "/etc/docker/daemon.json" 文件(如果没有…...
Docker--Docker Network(网络)
Docker Network(网络)是Docker容器之间和容器与外部网络之间的通信和连接的一种机制。以下是对Docker Network的详细解释: 一、Docker网络的重要性 Docker容器网络是为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作…...
Vue项目中生成node_modules文件夹的两种常用方法及npm优势
在Vue项目中生成node_modules文件夹的过程非常简单,主要步骤如下: 1、使用 npm 安装依赖包; 2、使用 yarn 安装依赖包。其中,推荐使用npm安装依赖包,原因如下: 兼容性更广:npm是Node.js的默认包管理工具,具有更高的兼容性。社区支持:npm拥有更大的用户基础和社区支持,…...
Rockchip RK3588 硬件看门狗从内核到应用的完整配置与调试
1. 硬件看门狗基础与RK3588特性 硬件看门狗(Watchdog)是嵌入式系统的"救命稻草",它就像个严格的计时员,如果系统在规定时间内没有定期"签到"(喂狗),就会强制重启整个系统。…...
别再乱设边界条件了!Lumerical FDTD仿真区域设置保姆级避坑指南
Lumerical FDTD仿真边界条件实战手册:从物理原理到参数调优 在光学仿真领域,边界条件的设置往往成为决定仿真成败的关键因素。许多工程师和研究人员投入大量时间优化结构设计和光源参数,却忽视了边界条件这一"隐形杀手"。不当的边界…...
QMCDecode:数字音乐解放引擎,12种加密格式一键破解
QMCDecode:数字音乐解放引擎,12种加密格式一键破解 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录ÿ…...
MATLAB pchip函数实战:手把手教你实现自定义三阶Hermite插值(附完整代码)
MATLAB pchip函数实战:从原理到自定义实现的三阶Hermite插值指南 在工程计算和数据分析领域,插值技术扮演着至关重要的角色。当我们面对离散数据点却需要连续函数表达时,插值方法能够帮助我们重建数据间的潜在关系。众多插值方法中࿰…...
Windows平台APK安装难题:APK Installer如何实现安卓应用的无缝部署?
Windows平台APK安装难题:APK Installer如何实现安卓应用的无缝部署? 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在移动应用生态日益丰富的今…...
别再只盯着LoRaWAN了!聊聊智能水表里那颗‘小磁铁’:干簧管选型与防误触实战指南
智能水表设计进阶:干簧管选型与抗干扰实战解析 在物联网智能水表的设计中,数据采集的可靠性直接决定了整个系统的准确性。当大多数讨论聚焦于LoRaWAN通信协议时,硬件设计中的关键元件——干簧管却往往被忽视。这颗"小磁铁"的选型和…...
C++计算直线倾斜角与方位角
要计算一条直线的倾斜角(与X轴正方向的夹角)或方位角(与正北方向的顺时针夹角),核心在于根据直线上的两点坐标进行数学计算。以下是具体的数学原理和C实现。 一、核心数学公式 1. 倾斜角(与X轴夹角&#…...
跨平台文本编辑神器Notepad--:5个核心功能助你高效处理代码与文档
跨平台文本编辑神器Notepad--:5个核心功能助你高效处理代码与文档 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-…...
如何用OpenCore Legacy Patcher修复老旧Mac的网络功能:5步搞定WiFi与热点问题
如何用OpenCore Legacy Patcher修复老旧Mac的网络功能:5步搞定WiFi与热点问题 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac设备升级mac…...
如何在PDF中运行Linux?LinuxPDF虚拟输入输出系统的实现原理详解
如何在PDF中运行Linux?LinuxPDF虚拟输入输出系统的实现原理详解 【免费下载链接】linuxpdf Linux running inside a PDF file via a RISC-V emulator 项目地址: https://gitcode.com/gh_mirrors/li/linuxpdf LinuxPDF是一个令人惊叹的开源项目,它…...
