一般最佳实践

以下是一些通用的最佳做法,建议所有开发人员在为混合现实创建 Unreal Engine 项目时遵循。

构造函数

如果需要在蓝图中使用“构造函数”的等效项,请使用 Unreal 的构造脚本。 相较于使用“BeginPlay”事件,使用该构造脚本的主要优势是构造脚本也在“编辑器”中运行。 大多数情况下,可以在启动时甚至编译时缓存值。

注意

可以在编辑器扩展概述中找到有关构建脚本的更多支持信息。

3D 按钮和纹理

在混合现实应用程序中进行创建或计划使用 3D 按钮时,自然要考虑性能。 但并非所有内容都必须由网格制成才能被视为 3D。 可以选择使用 Paper2D 并精心制作纹理来实现 3D 外观。 这非常适用于“看似”3D 但实则是四边形上经 photoshop 处理过的图片的按钮。 它们的一个精美版本称为 sprite

变量

在运行时创建具有多个对象配置的场景时,请使用 Unreal 变体。 变体可以包括不断变化的材料或网格。

动画

如果要创建大量“可交互的动画”,请使用 Spline 组件(而不是 Spline“网格”组件)和时间线节点

通信

如果在动态查找对象时或使用过多带宽在多个角色和蓝图之间进行通信时遇到麻烦,请使用关卡蓝图。 请记住,Unreal Engine 4 与 Unity 不同,并非所有内容都必须位于组件内部。 关卡蓝图是简化多个角色之间通信的非常有效的推荐方法。 在关卡蓝图的 OnBeginPlay 中,甚至可以在启动时“缓存”对象引用。

全局状态

通常需要存储特定于关卡的状态,例如分数、关卡数据、特定于玩家的信息或不完全属于特定对象的任何其他内容。 请勿忽略 GameMode。 大多数人都忘记了它的存在,但是 GameMode 可以在每个关卡创建,并包含特定于每个关卡的数据。

优化蓝图

如果发现自己的蓝图太慢,请在用 c++ 重写代码前,先让 Unreal 将蓝图“本地化”。 创建自己的自定义解决方案前,请先尝试使用自动本地化

蓝图设置,其中突出显示了蓝图本地化方法