UE蓝图开发最佳实践

本文最后更新于:2024年12月27日 下午

[UOD2022]蓝图开发最佳实践 | Epic 何骞

命名相关

变量命名规则

减少冗余信息

函数命名规则

蓝图如何保持整洁

避免过长的蓝图逻辑,屏幕长度有限

事件左对齐

保证更改逻辑的时候不会改错

通过Re-route来减少连线

避免错乱事件连线

不要想到一个事件就立马create出来

重用Getter或者Pure节点

清晰的返回节点

越复杂的函数为什么return,为什么early return需要写清楚

Select节点

Text替代String

蓝图注释规则

分不同的颜色,规则不一样

注释的细节

每个事件都编写注释

Sequence的每一段都写注释

把长的拆分成sequence也可以做

为复杂的逻辑写注释

为复杂的函数返回写注释

如何创建稳固更新的生产线?

不是一开始就设计好,而是在项目进行到一定阶段在解耦。

不要复制黏贴,而是作为抽离成function

性能问题

每次冷启动,可以通过log(Unreal Inside)来观察哪里加载的久。

以及每次添加新节点的时间

优化方法

减少不必要的Cast,特别是复杂蓝图类的cast

用Gameplay Tag和blueprint Interface

活用命名空间

可以规定某个蓝图这是哪种玩法会用到的,这样就可以减少加载

减少Hard Reference

因为每个hard Reference都会加载在内存里面,会影响包体大小,考虑用Tag或者Soft Reference来替换

热更新

一个比较好的方式是,脚本语言不去改蓝图function的实现,然后划分好哪些变量会修改,这样也可以作为一个新的category来分类

蓝图审核

可以持续更新一个Best Practice文档

编辑器拓展

Assest Action Utility(这里没太听懂,到时候学习一下)

如何平衡蓝图和C++?

不用过早优化

因为变化可能很快

有安全性问题的时候可以考虑转

比如拿的很多信息不是在本地,而是要通过服务器来request,这种可能放在C++核心类比较好

直接重定向

在C++里面写一个MigrateProperty这样一个函数,可以把哪些变量,CDO准确的转化过来


UE蓝图开发最佳实践
https://rorschachandbat.github.io/游戏杂货铺/蓝图开发最佳实践/
作者
R
发布于
2024年12月21日
许可协议