发布时间:2026/9/1 17:43:44
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动 本篇核心知识点Unity UI 素材导入规范、Sprite 图片设置、九宫格切片、锚点 / 对齐 / 适配、UI 基础组件Image/Text/InputField/Button、输入框密码模式、场景创建与跳转、Build Settings 场景注册、登录 / 注册 UI 完整搭建、按钮事件绑定、网络消息联动、消息枚举优化、业务逻辑判断、观察者事件解耦一、UI 素材导入与图片基础设置1 素材导入操作外部图片直接拖拽到 UnityAssets文件夹自动生成资源文件所有 UI 图片禁止直接拖到 Canvas需要先创建 UI 组件再赋值图片源否则会识别为 3D Sprite。2 图片纹理核心设置必改概念图片默认纹理类型为Default/Texture无法用于 UI 渲染必须修改参数才能赋值给 Image 组件。操作步骤全选所有 UI 图片CtrlA右侧 Inspector 面板修改Texture Type Sprite (2D and UI)点击 Apply 批量应用修改选中 Image 组件将资源拖入Source Image属性勾选Set Native Size还原原图尺寸。拓展3D 模型贴图保持 TextureUI 界面素材统一 Sprite 类型两类资源分开文件夹管理。二、UI 锚点与适配系统核心适配知识点1 对齐预设面板选中 UI 物体Inspector 上方对齐九宫面板一键停靠居中、左上、右上、左下、右下、左右拉伸、上下拉伸、全屏拉伸全屏拉伸四边距离全部置 0自动铺满屏幕背景适配任意分辨率。2 锚点修改两种方式直接输入锚点 XY0,0 左上角0.5,0.5 中心1,1 右下角快捷操作按住Shift点击对齐面板绿色锚点快速切换锚点位置。3 适配实战逻辑登录弹窗固定右下角锚点设右下角左右 / 底部偏移固定拉伸窗口弹窗位置不变全屏背景选全屏拉伸模式完美适配手机 / PC 不同分辨率九宫格对话框不能直接拉伸原图会圆角变形需要切片处理。三、Sprite 九宫格切片Nine Slice1 问题现象圆角弹窗、按钮直接放大缩小四角倒角、边框会拉伸变形影响界面美观。2 插件安装Unity 2022 版本顶部菜单Window → Package Manager包管理器切换Unity Registry搜索2D Sprite点击 Install 安装官方 2D 编辑插件。3 切片完整流程选中弹窗背景图片点击 Inspector「Edit Sprite」打开切片编辑器四条分割线上下左右各拉一条隔离四个角落规则四个角1/3/7/9 区块固定不变上下中间横向拉伸、左右中间纵向拉伸、中心双向拉伸编辑完成点 Apply 保存Image 组件Image Type改为Sliced切片模式放大后四角不变形。4 Image 其他填充模式拓展Simple原图等比缩放变形Tiled平铺重复血条背景、地砖Filled填充模式通过Fill Amount 0~1实现进度条、技能冷却环形遮罩。四、Unity 常用 UI 组件详解1 Image 图像组件作用显示 UI 图片、弹窗、按钮背景核心属性Source Image贴图、Image Type切片 / 填充、Color 调色、Set Native Size。2 Text 文本组件废弃老式 TextMeshPro 不推荐使用内置 Text可调参数字体大小、颜色、对齐左 / 中 / 右、行高业务规范账号、标题文字字号 40~50提示小字 30。3 InputField 输入框登录核心组件组成结构双层文本Placeholder 占位文本无输入时灰色提示文字请输入账号Text 输入文本玩家实际输入内容关键属性ContentTypeStandard普通文字Password密码模式输入内容自动替换为圆点隐藏底层字符串仍保存原始密码代码获取输入内容4 Button 按钮组件组成Background Image 背景图 Text 文字绑定点击事件两种方式可视化拖拽OnClick 面板添加绑定函数代码动态绑定btn.onClick.AddListener(ClickFunc);组件层级规范Canvas → 登录面板 Image → 账号 Text 输入框、密码 Text 输入框、登录 / 注册 / 找回按钮父子层级清晰。五、登录 UI 完整搭建流程创建 Canvas分辨率推荐手游1334×750拖入弹窗背景 Image切片处理、锚点固定右下角添加账号、密码 Text 文本两个 InputField 输入框账号标准、密码设 Password 模式复制生成登录、注册、找回密码三个 Button替换背景图调整所有控件锚点适配窗口层级父子整理。六、场景创建与场景跳转1 新建场景右键 Project 面板 → Create → Scene本次项目两个场景Login 登录场景、Lobby 大厅场景。2 场景注册必做否则跳转报错顶部菜单File → Build Settings将所有场景拖拽到「Scenes In Build」列表场景索引列表从上到下对应数字 0、1代码可通过名称 / 索引跳转。3 场景跳转代码命名空间using UnityEngine.SceneManagement;4 常见报错报错Scene could not be loaded场景未添加到 Build Settings 列表。七、UI 与网络消息联动业务逻辑1 按钮点击校验逻辑登录按钮点击登录执行流程获取输入框账号、密码文本判断字符串长度空字符串弹窗提示账号密码非空构造C2SLogin消息发送服务端易错坑逻辑运算符错误2 消息命令枚举优化替代纯数字 1001/1002概念硬编码数字可读性差、易写错使用枚举统一管理所有子命令两端同步。发送消息时直接传入枚举强类型编译报错杜绝数字写错问题。3 注册消息拓展开发新增消息类C2SRegister扩展昵称 Nickname 字段子命令1003客户端发回执1004服务返回注册逻辑账号重复返回失败码成功直接自动登录跳转大厅。八、主线程消息处理Unity 线程限制核心规则异步网络子线程禁止操作 UI、场景、GameObject所有界面逻辑必须放到Update主线执行。标准实现方案网络 Session 收到消息加锁存入私有消息队列Update 每帧循环读取队列批量处理消息收到登录成功回执Result0执行场景跳转失败弹窗提示。事件 / 观察者解耦方案定义全局委托public event Action OnLoginSuccess;UI 脚本监听该事件主线处理完登录消息后触发委托自动执行跳转逻辑委托与 event 区别普通 Action外部可直接 null清空所有监听不安全event 事件外部仅能/-订阅禁止直接赋值游戏项目优先 event。九、网络库 DLL 项目配置规范公共 MyNet 类库输出路径设置Unity/Assets/Plugins每次重新生成 DLL 自动同步无需手动复制客户端、服务端共用同一套 Packet/Message 代码消息结构完全统一避免收发解析错位。十、常见 Bug 与排错方案1 UI 图片拖不进 Image Source图片 Texture Type 未改为 Sprite2 弹窗拉伸圆角变形未做九宫格切片Image Type 不是 Sliced3 场景跳转提示加载失败场景未加入 Build Settings4 输入空账号依然发消息逻辑运算符 || 写成 5 子线程操作 UI 报错消息未中转主线 Update 队列6 消息解析字段丢失未按顺序序列化 / 反序列化子类新增字段7 DLL 找不到类库输出路径未指向 Unity 资源文件夹。十一、拓展1 Sprite 图片纹理类型、九宫格切片使用场景2 锚点与分辨率适配原理手游 UI 适配标准3 InputField 密码模式底层存储规则4 Unity 主线程限制、消息队列中转解决方案5 场景跳转配置步骤Build Settings 作用6 event 事件相比普通委托的安全优势7 消息枚举优化项目规范杜绝魔法数字8 DLL 公共库两端复用项目分层设计思路。

相关新闻

2026/8/30 6:26:00

Qt 6.5 .pro/.pri 配置实战:3个模块化项目构建与 $$PWD 路径管理

Qt 6.5 模块化工程实战:.pro/.pri 配置与 $$PWD 路径管理精要当Qt项目从简单的Demo演变为包含多个子模块的复杂系统时,如何优雅地组织工程结构成为每个开发者必须面对的挑战。本文将带你深入Qt 6.5的工程配置体系,通过三个典型模块的实战案例…

2026/9/2 14:15:22

LayerNorm与RMSNorm对比:大模型归一化技术原理与LLaMA实现

在深度学习模型训练中,归一化技术一直是稳定训练过程、加速收敛的关键组件。LayerNorm(层归一化)作为Transformer架构中的标准配置,多年来在自然语言处理领域占据主导地位。然而,随着大模型时代的到来,RMSN…

2026/8/31 20:57:26

bitArt 系列 01:架构

最近整理一个 HarmonyOS 像素画编辑器项目 bitArt,发现它很适合作为复杂 ArkTS 应用的拆解案例。它不是一个只有按钮和列表的 Demo,而是一个完整的移动端创作工具:中间是像素画布,周围有工具栏、图层面板、调色板、动画帧时间轴、…

2026/9/2 15:50:49

单片机计算机毕设之基于 STM32 或 51 单片机的定时可控智能照明系统设计与实现 基于 STM32 或 51 单片机的多工作模式护眼照明设备开发(011906)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 15:50:49

单片机计算机毕设之基于 STM32 单片机的园艺种植环境智能监测控制系统设计 基于 STM32 单片机的环境阈值可调式农业智能调控系统设计(011706)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 15:50:49

【单片机毕业设计】基于 STM32 的多路开锁方式物联网门禁报警系统设计 基于 STM32 单片机的 Android APP 远程智能门锁设计与实现(012506)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 15:50:49

YOLO26改进新思路:DIFF动态交互前馈网络模块接入指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 15:50:49

iOS 17测试版iCloud+限制变化解析与AI功能集成应对策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…