[UE4] Component BluePrint 组合 代替 BluePrint 继承 实现 ECS 结构

本文探讨了如何使用UE4的Component Blueprint组件组合替代BluePrint继承,以实现类似ECS(Entity Component System)的架构。通过组件化,可以简化系统复杂度,便于访问和管理Actor。对比了基于BluePrint继承和Component Blueprint的逻辑,指出Component Blueprint的优势在于避免了Actor类型的硬性绑定,简化了获取特定功能的流程,并允许动态切换角色身份。
摘要由CSDN通过智能技术生成

ECS 使用组件的组合代替 Actor 的继承,就是出于简化系统复杂度的考虑
我在网上看到的示例是说,系统要遍历他使用到的组件,我想的是,其实也可以是,要交互的时候就访问实体是否有这个组件,有的话这个事件才能被实体的组件处理。感觉应该也是这个结构的意思。

示例:
我需要玩家和敌人都被视为一个角色,他们作为角色都有相同的逻辑,比如受到伤害,做出决策
一开始我是先新建了一个 BP_RoleBase 然后新建 BP_Role0000 继承这个 BP_RoleBase 表示主角
但是后来我发现,当一些角色需要访问主角的时候,现成的方法中,他们只能拿到 Player Pawn,要拿到 BP_RoleBase 还需要查找。这样就平白多出来一步操作。总览,就是,有两个蓝图可以表示主角,一个是 Pawn,一个是 BP_RoleBase,这样就显得有点多余
实际上,把一些小功能做成组件,然后把组件放到 Actor 中才是更好的
一个优点是便于访问,你只需要对一个 Actor 用 GetComponent 就行,不需要 Cast to
一个优点是便于管理,有这个 Component 的就是角色,没有的就不是,这样,任何 Actor 都可以是角色,而不需要都继承一个角色父类蓝图,还可以动态切换角色身份,只需要动态添加组件就好了,这也是继承父类蓝图做不到的

1.基于 BluePrint 继承的逻辑需要判断 Actor 的蓝图父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值