Unity 优化小技巧 50 连发
集合 CPU、GPU、内存、包体、加载五大维度的高性价比优化点,帮助项目快速提帧、降包、减内存。

适用版本:Unity 2021 LTS–2023,覆盖 URP / Built‑in。
旨在“低成本、快收益”的落地技巧,每条独立可用,按需取舍。


一、CPU 优化(12 条)

# 技巧 关键点
1 把逻辑放到 LateUpdate 而非 Update,避免与物理同帧竞争 主线程排队更短
2 Physics.Simulate 离线跑战斗回放 主线程空窗期计算
3 大量定时器改用 Time.realtimeSinceStartup 轮询 减少 InvokeRepeating GC
4 AI 感知帧拆分:index % n 把 1 帧 1000 次 → 10 帧分批
5 短生命周期对象进 ArrayPool<T> 复用数组,避免装箱
6 关闭 GameObject 时改用 SetActive(false) 而非销毁 GC 零分配
7 启用 Burst + JobSystem 批处理数学 NEON/AVX2 向量化
8 UI 高频刷新改用 CanvasGroup.alpha 避免重建 & 事件丢失
9 龙骨动画只播放在镜头内的实例 OnBecameVisible 控制
10 物理层级分组,减半碰撞矩阵 Physics.IgnoreLayerCollision
11 使用 Static Batching 锁定静态场景物体 减少 DrawCall
12 定点数学代替浮点(2D 问答游戏) ARM VFP 开销大幅减

二、GPU 优化(10 条)

# 技巧 效果
1 TextureAtlas + SpriteAtlas 合并小图 减材质切换
2 URP 关闭 HDR & MSAA 在中低端机 帧率 +20%
3 移动端使用 Half‑Float 法线贴图 内存‑50%
4 把天空盒烘焙成 128×128 Panorama VRAM‑80%
5 Shader 中少用 if,改 step/smoothstep 流水线不中断
6 FrameDebugger 检查 Overdraw,UI 改纯色 Cutout 透明叠加减
7 使用 SRP Batcher (URP/HDRP) SetPass‑65%
8 VFX Graph 改成 GPU Instancing CPU→GPU
9 QualitySettings.shadowDistance 按分辨率自适应 近景清晰,远景关闭
10 堆叠相机改单相机后处理 减少 RenderTarget Switch

三、内存优化(10 条)

技巧 说明
Addressables 分组 → packSeparately 热更资源分离
Mip Map Stripping 在低端机关闭高阶 Mip 缓存节省 30%
异步释放场景:Resources.UnloadUnusedAssets + 延迟 GC 避免卡顿
使用 SpriteAtlas Variant 做多分辨率 保品质减体积
TextureImporter 勾选 Crunch Compression PNG8 场景图
日志文件每天清理,避免日志爆炸 iOS 旧设备闪退
贴图 Read/Write 关闭 节省一倍内存
StringBuilderCache 复用 UI 拼字符串 减 GC
关闭 Reflection Probes 自动更新 静态场景
动态 Mesh 用 DynamicMeshBatcher 减分配

四、包体优化(8 条)

  1. Player Settings → Stripping Level: High
  2. 仅勾选使用到的 Localization Tables
  3. 纹理压缩 Android: ASTC 6×6 / ETC2 8‑bit
  4. IL2CPP + Master Stripping 去除未引用代码
  5. 音频转 ADPCM / Vorbis 并流式播放
  6. StreamingAssets 拆分首包与 CDN 资源
  7. 删除无用 Shader Variant (ShaderVariantCollection)
  8. 启用 Gradle Minify (ProGuard) 剔除库代码

五、加载与 IO 优化(10 条)

# 技巧 效果
1 Addressables Group Catalog 拆分 只拉需要的 Hash
2 CDN 分区:静态、热更、日志 请求更快
3 开机异步预热 Shader:WarmupAllShaders 避免首帧卡
4 使用 LZ4HC 压缩 AssetBundle 解压快、包体小
5 拆分场景 Additive + Stream 避免主线程卡
6 AsyncGPUReadback 替换 ReadPixels 无阻塞
7 WebGL 勾选 Data Caching 二次进入秒开
8 iOS 设置 On-Demand Resources 减首包
9 预加载音频到 AudioPreloadData 减延迟
10 Resources.LoadAsync + 进度条 友好 UX

结语

这些技巧覆盖项目从原型到上线的常见性能痛点。无需一次性全部采纳——定位瓶颈 → 精选技巧 → 验证数据 才是正道。祝开发顺利、帧率飞起!


附件

  • OptimizationChecklist.xlsx — 自查清单模板
  • SRPBatcherGuide.pdf — 官方指南译本

需要表格或脚本示例?留言即可发送。


Last modified on 2025-06-09