- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Mecanim 性能和优化
此页面包含一些有助于您获得 Mecanim 最佳性能的提示,包括角色设置、动画系统和运行时优化。
角色设置
- 骨骼块数
- 在某些情况下,您需要创建拥有大量骨骼的角色,例如想要大量定制附件时。这些额外的骨骼会增加发布大小,每增加一块骨骼,您预期会要承担相对加工成本。例如,在已有 30 块骨骼的装置上增加 15 块骨骼,则在通用 (Generic) 模式下要多花 50% 的时间进行处理。请注意,可以在通用和类人模式下添加骨骼。动画播放没有使用额外骨骼时,则就没什么加工成本。如果它们的附件不存在或隐藏,该成本将更低。
- 多个蒙皮网格
- 只要可能,合并蒙皮网格。将角色分成两个蒙皮网格渲染器就性能方面来说是个坏主意。如果角色只用一种材质,效会果更好,但在某些情况下,可能需要更多材质。
动画系统
- 控制器
- 当控制器未设为动画器时,动画器不会花时间进行处理。
- 简单的动画
- 播放没有融合的单个动画片段会导致 Mecanim 比旧版动画系统慢。旧版系统非常直接,会取样曲线,并将曲线直接写入变换组件。Mecanim 拥有一个用于融合的临时缓冲区,还有一些取样曲线和其他数据的额外副本。Mecanim 布局已经优化,以便进行动画融合和更复杂的设置。
- 缩放曲线
- 确保任何动画片段上均无缩放曲线。您可以编写一个资源后置处理程序,来删除缩放曲线或就其提出警告;请参阅 AssetPostprocessor 参考,获取更多信息。
- 层
- Mecanim 大多数时间都在评估动画,AnimationLayers 和 AnimationStateMachines 的间接费用控制在最低水平。向动画器(不论是否同步)再添加一层的费用取决于该层所播放的动画和混合树。当层的重量为零时,则将跳过层更新过程。
- 类人模式对比通用模式
- 这些提示有助于您在这些模式之间作出选择:
- 导入类人 (Humanoid) 动画时,使用 BodyMask 来删除不需要的 IK 目标 (IK Goals) 或手指动画。
- 使用通用 (Generic) 时,采用根运动比不采用时更昂贵。如果动画不采用根运动,确保不要选择根骨。
- 在安卓 (Android) 上,由于 NEON 目前不支持安卓,获得的性能会更差。类人模式特别偏重使用数学,因此如果没有 NEON,它会极易变慢 2-2.5 倍。
- Mecanim 场景
- 可进行多项优化,一些有用的提示包括:
- 使用哈希而非字符串来查询动画器 (Animator)。
- 执行小 AI 层 (AI Layer) 来控制动画器 (Animator)。您可以使之提供 OnStateChange、OnTransitionBegin 等的简单回调。
- 使用状态标签 (State Tags) 将 AI StateMachine 与 Mecanim StateMachine 轻松匹配。
- 使用额外曲线来模拟事件 (Events)。
- 使用额外的曲线来标记动画,例如配合目标匹配。
运行时优化
- 可见性和更新
- 始终通过设置动画器的剔除模式 (Culling Mode) 为基于渲染器 (Based on Renderers) 来优化动画,然后禁用蒙皮网格渲染器的在屏幕外时更新 (Update When Offscreen) 属性。这样,动画在角色不可见时不会更新。请参阅蒙皮网格渲染器,获取更多信息。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论