Unity的prefab(预制体)与UE4的Blueprint(蓝图)相比,各有什么优缺点?
文章类型: 知识普及 | 2023-02-16 | 阅读(10407)正如大家说的Prefab和蓝图对比不太恰当,因为蓝图是一个可视化编程的语言,而Prefab只是个资源,和蓝图对应的东西其实Unity里现在还找不到(Unity的C#应该对应虚幻的C++)。
正如大家说的Prefab和蓝图对比不太恰当,因为蓝图是一个可视化编程的语言,而Prefab只是个资源,和蓝图对应的东西其实Unity里现在还找不到(Unity的C#应该对应虚幻的C++)。
要知道要开发蓝图这种可视化编程的工具开发量可不小(编辑器、编译器、虚拟机)。
虚幻提供了蓝图这个系统的好处是可以更好的将逻辑进行工程化的分层,而其实对应特殊的系统需求,应该特化出对应类型的蓝图来处理,而不是使用通用蓝图直接硬干(有些人嫌弃蓝图做数学运算节点太多可读性差就是一个例子)。
特化蓝图最简单的方式就是合并成函数节点。
而最理想的方式是直接拓展蓝图系统,定制自己特化的蓝图类型,定制特化的蓝图节点对复杂的逻辑需求进行定制化的抽象。
下面列出虚幻几个特化的蓝图类型:
动画蓝图
UMG
GameplayAbilitySystem
在我看来动画蓝图是比较能表达蓝图抽象能力的一个特化,它将动画的各种IK、混合、过渡等逻辑抽象进一个个特殊的节点中,实现了和业务逻辑的解耦,而业务逻辑直接通过动画调度这些节点,能快速的进行动画需求的开发。
下面是我定制蓝图做的角色的调度系统,拓展了蓝图的编译器使得具备了游戏特殊需求的编译时检查能力,定制了蓝图节点来抽象角色的特定行为。
然而这套系统在Unity的当前的生态下现在实现起来是很困难的,再把它工程化就更困难了。
总结下蓝图这种可视化的编程工具现在Unity生态下还没有完全和它对应的功能,而这种可定制的节点化编程工具可以提供非程序的各种设计人员(游戏艺术家和设计师)操作游戏逻辑的可能,多总比少好是吧?
弘成IT教育致力于互联网IT人才的培养,精心打造并推出零基础入门、高手进阶、推荐就业为一体的课程体系,全面提升学员的个人素质能力和团队协作能力。欢迎咨询!