本篇核心知识点UGUI 常用交互组件 Text/Image/RawImage/Button/Toggle/Dropdown/InputField/Slider/Scrollbar、协程序列帧、嵌套协程实战、Text 文本组件属性与描边阴影、富文本、Image 四种图片模式、九宫格切图、RawImage 区别、Button 三种交互模式、代码动态绑定按钮事件、Toggle 互斥分组、Dropdown 下拉菜单、InputField 输入限制与回调、Slider 进度条、Scrollbar 滚动条一、协程复盘1 概念通过协程解决逐帧循环瞬间执行完毕问题同时掌握协程嵌套实现多组分段延时输出逻辑理解协程中断等待核心价值。2 特性 / 规则Update 内普通 for 循环会一帧遍历完所有贴图无停留动画效果必须使用协程 yield 等待协程嵌套在一个协程内部开启新协程实现分段、分组延时逻辑索引循环播放贴图使用取模运算防止数组越界延时统一使用 WaitForSeconds游戏暂停会同步暂停动画。3 语法 代码片段序列帧基础协程片段IEnumerator PlayFrame(){ int index 0; while(true){ img.sprite spriteArr[index]; index (index 1) % spriteArr.Length; yield return new WaitForSeconds(0.1f); } }嵌套协程片段IEnumerator GroupPrint(){ for(int i 1; i 5; i){ Debug.Log($第一组第{i}次); yield return new WaitForSeconds(1); } yield return StartCoroutine(SecondGroup()); } IEnumerator SecondGroup(){ for(int i 1; i 5; i){ Debug.Log($第二组第{i}次); yield return new WaitForSeconds(1); } }4 相关知识点对比Update 循环遍历 VS 协程分段执行普通 for 循环一帧执行完全部逻辑无停顿无法实现逐帧间隔动画协程 yield每切换一帧 / 等待指定时间再执行下一段完美实现滚动、打字机动画。5 模块拓展简历拓展课余可独立完成 2D 小游戏 demo丰富项目经验提升求职薪资上限。二、Text 文本组件1 概念UGUI 文字显示核心组件用于界面文字、提示、数值展示支持字号、对齐、富文本、描边、阴影拓展效果。2 特性 / 规则代码修改文字需引入using UnityEngine.UI命名空间字号超过文本框尺寸时开启水平 / 垂直溢出才能完整显示富文本开启后可通过标记修改单字颜色会覆盖组件基础颜色立体效果二选一Outline 描边 / Shadow 阴影不能同时挂载Mathf.PingPong 可实现文字颜色循环流光效果。3 语法 代码片段文本赋值、颜色渐变片段using UnityEngine.UI; private Text txt; void Start(){ txt GetComponentText(); txt.text 测试文字; } void Update(){ float t Mathf.PingPong(Time.time, 1); txt.color Color.Lerp(Color.red, Color.blue, t); }4 相关知识点对比Outline 描边 VS Shadow 阴影Outline文字外围纯色边框立体感更强适合标题大字Shadow文字后方偏移阴影柔和适合小字提示。5 模块拓展课后作业 1实时滚动显示系统时间文本课后作业 2打字机逐字输出文字协程 Text 逐字符赋值。三、Image 与 RawImage1 概念Image 用于 UI 图集 Sprite 图片支持九宫格、填充模式RawImage 原生渲染纹理不限制图片格式多用于 3D 贴图、小地图、CG 序列图。2 特性 / 规则Image 规则图片导入类型必须设为 Sprite 才能赋值给 Image四种渲染模式Simple 普通、Sliced 九宫格、Tiled 平铺、Filled 填充血条 / CD九宫格需安装 2D Sprite 包裁切四角固定、中间拉伸Filled 支持 360 / 水平 / 垂直填充用于技能冷却、血量条。RawImage 规则不限制图片导入格式可直接加载 Texture无九宫格、填充、自适应尺寸功能仅基础 UV 渲染多用于小地图、3D 模型实时贴图、CG 动画背景。3 语法 代码片段动态切换图片、填充进度片段private Image skillImg; // 切换贴图 skillImg.sprite newSprite; // 修改填充进度实现CD skill.fillAmount cdTimer / totalCd;4 相关知识点对比Image VS RawImageImage适配 UI 图集九宫格 / 填充 / 自适应齐全背包、按钮、界面图片首选RawImage无 UI 专用优化仅特殊贴图、小地图场景使用。5 模块拓展九宫格实战弹窗、对话框边框拉伸不变形填充模式制作技能冷却遮罩。四、Button 按钮组件1 概念UGUI 标准交互组件处理鼠标 / 触屏点击提供颜色、图片、动画三种切换状态支持代码动态绑定点击回调。2 特性 / 规则Interactable 勾选控制按钮是否可点击取消后完全无交互三种状态切换模式ColorTint 颜色、SpriteSwap 贴图、Animation 动画Navigation 导航仅 PC 键盘上下左右选中按钮手游项目几乎不用拖拽绑定仅做了解工程统一使用代码动态注册事件原生 UnityAction 委托无参数传参需嵌套匿名函数封装。3 语法 代码片段代码绑定按钮无参 / 带参private Button btn; void Start(){ // 无参绑定 btn.onClick.AddListener(ClickFunc); // 带参封装 btn.onClick.AddListener(()ClickWithArg(10)); } void ClickFunc(){ Debug.Log(点击按钮); } void ClickWithArg(int num){ Debug.Log(参数num); }4 相关知识点对比拖拽赋值绑定 VS 代码动态绑定拖拽编辑器手动绑定多人协作易丢失引用工程禁用代码绑定自动化管理预制体 / 动态生成物体通用项目标准写法。5 模块拓展课后作业制作技能 CD 按钮结合 Image 填充 Text 倒计时同步显示冷却剩余时间。五、Toggle 复选框组件1 概念单选 / 多选框用于设置勾选、筛选分类搭配 ToggleGroup 实现同组互斥只能选中一个。2 特性 / 规则isOn 布尔值控制勾选状态状态切换触发 onValueChanged 回调ToggleGroup 分组后组内 Toggle 互斥取消 “Allow Switch Off” 则至少保留一个选中常用于音量开关、画质选项、背包分页切换。3 语法 代码片段private Toggle toggle; void Start(){ toggle.onValueChanged.AddListener(OnToggleChange); } void OnToggleChange(bool isSelect){ if(isSelect) Debug.Log(已勾选); }4 相关知识点对比独立 Toggle VS ToggleGroup 分组 Toggle独立可同时多选设置勾选、静音开关分组互斥单选分页、画质档位切换专用。5 模块拓展背包分页系统多 Toggle 分组切换装备 / 药品 / 材料界面。六、Dropdown 下拉菜单1 概念下拉选择组件展开多个选项选中后返回索引用于物品排序、筛选功能。2 特性 / 规则Template 为下拉选项模板运行自动克隆生成选项onValueChanged 回调返回选中选项 int 索引同一索引重复点击不会重复触发回调。3 语法 代码片段下拉选项监听private Dropdown drop; void Start(){ drop.onValueChanged.AddListener(SelectItem); } void Select(int index){ switch(index){ case 0: 按等级排序; break; case 1: 按金币排序; break; } }4 相关知识点对比Dropdown VS Toggle 分组Dropdown收起节省界面空间选项多使用Toggle全部选项平铺展示选项少、需要快速切换使用。5 模块拓展商城筛选、背包物品分类排序功能开发。七、InputField 输入框1 概念接收玩家文字 / 数字输入用于登录、聊天、商城数量输入支持输入类型限制、占位提示、多类回调。2 特性 / 规则ContentType 限制输入类型数字、邮箱、密码、姓名等Placeholder 为未输入时灰色提示文字三大回调onValueChanged 每输入字符触发、onEndEdit 失去焦点触发、onSubmit 回车提交密码模式界面显示 *程序内文本明文项目需加密传输。3 语法 代码片段获取输入文本private InputField input; void Start(){ input.onEndEdit.AddListener(InputFinish); } void InputFinish(string content){ Debug.Log(输入内容content); }4 相关知识点对比onValueChanged VS onEndEditonValueChanged输入任意字符立即触发实时校验onEndEdit点击空白 / 回车后触发聊天、登录提交首选。5 模块拓展登录账号密码输入、聊天发送框、商城购买数量输入。八、Slider 滑动进度条 Scrollbar 滚动条1 概念Slider 可调数值进度条血量、加载、音量Scrollbar 搭配 ScrollRect 实现面板滚动。2 特性 / 规则Slider 可自定义最大最小值onValueChanged 监听数值变化Scrollbar 取值固定 0~1Number Of Steps 控制滑动阶梯游戏加载进度条视觉均为假资源加载完成才会跳转场景。3 语法 代码片段Slider 数值监听private Slider slider; void Start(){ slider.onValueChanged.AddListener(ChangeValue); } void Change(float val){ Debug.Log(当前数值val); }4 相关知识点对比Slider VS ScrollbarSlider自定义数值区间音量、加载、血量Scrollbar固定 0~1仅用于滚动视图配套。5 模块拓展游戏加载界面、音量调节滑动条。综合拓展UI 组件开发规范界面交互逻辑全部代码动态绑定禁止编辑器拖拽赋值图片统一使用 Sprite 类型界面背景使用九宫格适配多分辨率。性能优化要点静态无交互 UI 关闭 Raycaster大量滚动列表使用对象池复用 Item不需要实时更新文本减少每帧赋值。高频 Bug 排查方案按钮点不动检查 Interactable 与 EventSystem图片不显示检查 Sprite 导入类型输入无法输入核对 ContentType 限制。进阶拓展学习方向ScrollRect 滚动视图、UI 动画、图集打包、TMP 高性能文本、UI 事件传递遮罩。
大模型浪潮来袭:小白程序员如何把握开源红利,收藏这份高价值落地指南? 文章分析了当前大模型行业的发展现状与核心痛点,指出算力成本、商业化落地困难、数据隐私合规和模型安全是主要挑战。文章提出了四大落地路径:算力成本优化、开源与闭源选择、垂直领域智能代理应用、数据合规解决方案,并预判了未来三年行业发…
基于STM32F103的PLC开发板设计方案与实现 在工业自动化项目中,很多开发者会遇到传统PLC成本高、扩展性差的问题,而基于STM32F103自主设计PLC开发板既能满足控制需求,又能大幅降低成本。本文将完整分享一套基于STM32F103的PLC开发板设计方案,包含开关量输入输出、模拟量采集…
WarcraftHelper完整指南:让经典魔兽争霸3在现代电脑上焕发新生 WarcraftHelper完整指南:让经典魔兽争霸3在现代电脑上焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸3》这款经…
163MusicLyrics:三分钟解决你的音乐歌词烦恼,网易云QQ音乐歌词一键获取 163MusicLyrics:三分钟解决你的音乐歌词烦恼,网易云QQ音乐歌词一键获取 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为整理音乐库时缺少歌…
东莞刑事律所避坑指南:识破皮包律所挂名办案虚假胜诉套路 - 优企甄选 东莞刑事律所避坑指南:识破皮包律所、挂名办案、虚假胜诉套路 刑事案件关乎当事人人身自由与合法权益,律所与律师的专业度、靠谱程度直接决定案件辩护效果。东莞法律服务市场繁杂,大量非专业律所、中介机构混杂其中…
计算机毕业设计之基于jsp在线直播管理系统 伴随着全球信息化发展,行行业业都与计算机技术相衔接,计算机技术普遍运用于各行各业。实施计算机系统来管理可以降低平台的成本,使整个平台的发展和直播点击率有显著提升。本论文主要面向在线直播中出现的一些常见问题,将其与计算…
Rust Rosetta Code测试驱动开发:为每个任务编写完整的单元测试 Rust Rosetta Code测试驱动开发:为每个任务编写完整的单元测试 【免费下载链接】rust-rosetta Implementing Rosetta Code problems in Rust. 项目地址: https://gitcode.com/gh_mirrors/ru/rust-rosetta Rust Rosetta Code项目通过实现各种算法和问题解决方…
如何彻底解决GPU内存稳定性问题:MemtestCL完整实践指南 如何彻底解决GPU内存稳定性问题:MemtestCL完整实践指南 【免费下载链接】memtestCL OpenCL memory tester for GPUs 项目地址: https://gitcode.com/gh_mirrors/me/memtestCL 在GPU计算日益普及的今天,无论是AI模型训练、科学计算还是图形渲染&am…
DevExpress WinForms中文教程 - HTML CSS支持的实战应用(一) DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…
VS Code 高效配置与个性化定制全攻略 1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像 在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…
WinRAR高效配置指南:从基础安装到高级压缩实战 前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…