UE4- (蓝图)ChildActor 组件

ChildActor组件作用:让一个类成为另外一个类的组成部分,并可以在ViewPort中展示。

示例背景:射击类游戏中,人物可以开枪,并且可以更换枪支,因为枪支的子弹类型,数量,更换弹夹时间,子弹发射特效均不同,此时要将人物跟枪分别编辑为两个类,此时人物可以操作枪,并且枪也要获取当前的拥有者进一步获取到拥有者身上的一些变量。

未有Child Actor组件的效果图:

一、在人物控制器蓝图中,创建ChildActor组件,该组件要跟随哪个Mesh动就拖到哪个Mesh下(因为枪要跟随手的动作),选中Mesh 在Add Component中搜索 Child Actor确定创建。

二、选中创建的Child Actor,设置Child Actor 组件的骨骼插槽,并且设置该组件要生成的类,并将Transform中的值还原为0。

注意:选择骨骼插槽的前提是要在正确的Mesh下方才会去获取到骨骼中的插槽,所以设置父子关系的时候要确认是否设置的正确。

 Viewport中显示的Rifle类的样式: 

三、通过Child Actor 获取到抢的类,及设置枪类 中要获取到当前的拥有者

使用child actor 中的get child actor,获取到childe actor 中选择的类,就可以设置和获取到枪中的数据

  

注:在运行时不能更换Child Actor中选择的Child Actor Class 的类

### Unreal Engine 蓝图组件 Attach 和 Detach 操作 #### 组件附着 (Attach) 在 Unreal Engine 的蓝图编辑器中,`Attach to Component` 是用于将一个 Actor 或者其子对象附加到另一个指定的组件上。此操作允许创建复杂的游戏物体结构并管理这些游戏物体内不同部分之间的相对位置。 当执行 `Attach To Component` 动作时,目标组件会成为父级组件的一部分,并遵循它的变换属性(如旋转、平移)。这通常应用于构建角色装备系统或任何需要动态组合多个部件的情况[^1]。 要实现这一功能,在蓝图图表里可以找到名为 "AttachToComponent" 的节点: ```blueprint // 将 ChildActor 作为参数传递给该函数 ChildActor->AttachToComponent(ParentComponent, FAttachmentTransformRules::KeepWorldTransform); ``` 这里使用了枚举类型 `FAttachmentTransformRules` 来定义如何处理世界坐标系下的转换规则——可以选择保持当前的世界空间姿态 (`KeepWorldTransform`) 或者相对于新父项重新计算(`SnapToTargetIncludingScale`, `SnapToTargetWithoutScale`)。 #### 组件分离 (Detach) 相反的过程叫做 “Detaching”,即解除两个组件间的父子关系。通过调用 `DetachFromParent` 方法可以让之前被绑定的对象恢复独立状态,不再受制于原来父母级别的影响。 同样地,在蓝图脚本中有对应的 `Detach From Parent` 节点来完成这项工作: ```blueprint // 对想要脱离的对象调用此命令即可 ChildActor->DetachFromParent(true); // 参数 true 表示是否重置相对变换 ``` 设置可选布尔值为真则意味着一旦解绑之后还要清除掉所有先前存在的局部偏移量;如果设成假,则保留原有的相对位姿不变。 --- #### 使用场景举例 - **武器切换**: 当玩家捡起一把新的枪械时,旧的会被卸下而新的自动挂载在玩家模型的手臂骨骼处; - **车辆组装**: 可以让不同的车身零件按照一定顺序依次连接起来形成完整的交通工具实例; - **环境互动**: 物品拾取机制中经常涉及到把道具物品临时依附于人物手部再过一段时间后丢弃出去等交互行为模拟。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值