游戏流程
游戏流程:
Mermaid
mermaid在线编辑器 推荐下面的方式:在Mermaid 在线编辑器绘制图标,完成后点击下方的【复制 Markdown】,将链接粘贴到md文档就可以预览,点击图表也能跳转到Mermaid继续编辑,不过修改完后你需要重新手动更新链接。Mermaid还可以团队协助一起编辑,这个要使用国际版国际版还支持Playground-more featureS, no account required,点击【Playground】可以直接鼠标创建完成绘制图标像xmind一样,不用手敲语法;可以分享协同编辑,文档存于账户中,链接虽然也不是固定的,但是内容是同步的。 注意 :点击【复制 Markdown】生成的链接是根据内容来动态改变的,内容被封装在链接中,所以每次改动图表内容都会改变链接地址,所有引用旧地址的都需要手动更换地址不然访问的内容还是原来的。
Lua语法检测工具文档
Lua语法检测工具文档工具概述Lua语法检测工具是一个Unity编辑器扩展工具,用于批量检查指定目录下所有Lua脚本的语法正确性。该工具通过创建Lua虚拟机环境,尝试加载每个Lua文件来验证其语法是否合法,帮助开发者在早期发现潜在的语法错误。 功能特性 批量扫描指定目录下的所有Lua文件 使用原生Lua虚拟机进行语法验证 显示详细的错误信息,包括文件路径和具体错误描述 支持递归扫描子目录 提供简洁直观的GUI界面 使用说明安装与启动 将脚本放置在Unity项目的Editor文件夹下 在Unity编辑器中,通过菜单栏选择 Tools/lua语法检测...
Prefab文本组件管理工具文档
Prefab文本组件管理工具文档工具概述Prefab文本组件管理工具是一个Unity编辑器扩展工具,专门用于批量管理和清理预制体(Prefab)中的文本组件内容。该工具能够扫描指定目录下的所有预制体,查找并管理UGUI Text、RichText和TextMeshPro(TMP)文本组件,支持查询非空文本组件和批量清空文本内容。 功能特性 批量扫描:递归查找指定目录下的所有预制体文件 多类型支持:同时支持UGUI Text、RichText和TextMeshPro(TMP)组件 文本查询:查找并列出所有包含非空文本的组件 批量清理:一键清空所有文本组件内容 详细报告:提供操作过程和结果的详细输出 进度显示:可视化进度条显示处理进度 使用说明安装与启动 将脚本放置在Unity项目的Editor文件夹下 在Unity编辑器中,通过菜单栏选择 Tools/文本组件管理...
多语言文件批量对比工具文档
工具概述多语言文件批量对比工具是一个Unity编辑器扩展工具,用于批量扫描和对比游戏中的多语言Lua文件,检查不同语言版本之间的键值一致性。该工具能够自动识别同名语言文件组,并对比各组文件中键的差异,帮助开发者快速发现多语言文件中的缺失或多余键值。 功能特性 批量扫描指定目录下的所有Lua语言文件 自动按文件名分组多语言文件 对比同组文件中键值的差异 显示缺失键和多余键的详细报告 支持嵌套表结构的键值对比 提供简洁直观的GUI界面 使用说明安装与启动 将脚本放置在Unity项目的Editor文件夹下 在Unity编辑器中,通过菜单栏选择 Tools/多语言文件批量对比 打开工具窗口 界面说明工具窗口包含以下主要部分: 路径选择:显示和修改语言文件所在目录(默认为Assets/_GameCenter/ClientLua/Model/Language) 扫描对比按钮:点击后开始扫描指定目录并对比文件 结果展示区域:显示对比结果的详细信息 操作步骤 确认或修改语言文件目录路径 点击”Scan and Compare All Language...
Unity Overdraw 分析
在 Unity 中查看界面(UI)的 Overdraw(过度绘制)情况,可以使用 Unity 的 Scene 视图 + Frame Debugger 以及 Profiler 和 RenderDoc 工具。下面是详细方法: ✅ 方法一:Scene 视图中的 Overdraw 模式(推荐)操作步骤: 打开 Unity 编辑器。 切换到 Scene 视图(不是 Game 视图)。 在 Scene 视图左上角点击 “Shaded” 下拉菜单。 选择 “Overdraw” 模式。 ✅ 在该模式下,颜色越亮说明重叠的次数越多,白色代表非常多次重叠。 注意事项: 这个模式主要对 UI 的渲染顺序 和 透明图片叠加 非常直观。 你需要选中 Canvas 或 UI 元素所在的层级来定位问题。 ✅ 方法二:Frame Debugger(推荐用于查找具体调用)操作步骤: 打开 Unity 的 Window > Analysis > Frame Debugger。 点击左上角的 Enable。 运行游戏,进入你要查看的 UI 界面。 在 Frame Debugger...
Unity Scene 优化
我做的编辑器拓展开发,卡顿是出现在通过配置生成上万个带指向的3d球体和linerenderer,根据每个点的配置信息来设置球体的旋转偏量,3d空间位置,两个点之间通过linerenderer连接,创建过程耗时很长,卡顿是出现在编辑器静态界面,而非运行状态。当前面临的 编辑器卡顿问题,本质上是因为: ✅ 在 非运行时的编辑器模式(EditMode)中批量生成上万个带有 Mesh 和 LineRenderer 的 GameObject,Unity 会: 每次 GameObject.Instantiate() 都触发内部注册与序列化 每个 LineRenderer 或 Transform 修改都会立即记录在场景状态中 在主线程阻塞执行,触发 大量 Hierarchy 刷新、Inspector 重绘、Undo 缓存注册、序列化数据写入→ 导致 Unity 编辑器卡死或极度卡顿 ✅ 针对性优化建议(编辑器扩展模式专属) 🧱 一、核心优化原则 问题来源 优化手段 每个 GameObject 实时创建、注册 Undo、序列化 ✅ 使用...
Unity 后置界面截图代替
这是一个非常实用且高级的 UI 性能优化技巧,尤其适用于多层 UI 堆叠、全屏窗口频繁切换的游戏中,比如背包、商店、角色等互相遮挡但不会频繁更新的界面。 🧠 目标描述 将被遮挡的 UI 页面(非焦点)截图为一张静态图片,然后只显示截图,暂时不渲染真实 UI 元素,以降低 DrawCall 和 Canvas Rebuild 负担,充分释放 GPU 渲染资源。 ✅ 技术实现步骤(Unity UGUI)我们以“将后置界面截图 + 替换显示 + 隐藏原始 UI”为例讲解: 🧱 Step 1:截图后置 UI(RenderTexture 或 ReadPixels)123456789101112131415public Texture2D CaptureUIScreen(RectTransform targetRect){ // 1. 获取 UI 区域在屏幕空间的位置 Vector3[] corners = new Vector3[4]; targetRect.GetWorldCorners(corners); Rect rect = new...
Unity 打图集 - 合批减少DrawCall
在 Unity 中,通过打图集(图集打包)+ Canvas 优化策略可以有效实现 UI 合批(Batching),从而减少 DrawCall 提高性能。下面是详细说明和实战指导: 🧩 一、为什么打图集能减少 DrawCall?Unity UI 使用的是基于 Canvas 的渲染系统,同一个材质(图集)+ 同一个 Canvas + 无深度遮挡排序冲突 时,可以自动合并为一个 DrawCall。 举个例子: 如果你有 100 个 UI 元素,使用的是 相同图集的 Sprite,且放在 同一个 Canvas 下,就只需要 1 个 DrawCall。 但如果他们用的是不同贴图、不同材质、不同 Shader,就需要多个 DrawCall。 📦 二、图集如何打包(使用 Unity 自带 Sprite Atlas)✅ 步骤一:创建 Sprite Atlas 图集 Assets > Create > 2D > Sprite Atlas 给图集命名,例如 UIAtlas_Main 选中图集,点击 Inspector 中的 Objects for Packing...
Unity Rebuild 分析
在 Unity 的 UI 系统(UGUI)中,Rebuild 是指 UI 元素在生命周期中的某些阶段发生变化时触发的一种“重建”流程。频繁的 Rebuild 会带来性能问题,尤其在界面复杂或频繁更新时。下面是关于 Rebuild 的全面分析: 🧩 什么是 Rebuild?UI 元素发生如下变化时,会触发 Rebuild: 位置/大小发生变化(RectTransform 变动) 内容变动(Text 文本变了) 属性变动(颜色、字体、sprite 等) Unity 会将这些 UI 元素加入到一个队列,在 Canvas 的渲染阶段进行一次“重建”。 🔍 Rebuild 的类型(对应 CanvasUpdate 枚举)Unity 的 Rebuild 会按照 5 个阶段进行处理,分别是: 12345678public enum CanvasUpdate { Prelayout, Layout, PostLayout, PreRender, LatePreRender, MaxUpdateValue} 这些阶段由...