虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系
虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系
code review!
文章目录
- 虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系
- 1. 什么是Pawn?
- 2. 什么是胶囊体(Capsule Component)?
- 3. Pawn与胶囊体的具体关系
- (1)Pawn通常会包含一个胶囊体组件
- (2)胶囊体通常是Pawn的根组件
- (3)为什么选择胶囊体?
- (4)Pawn必须有胶囊体吗?
- 4. 代码示例
- 5. 总结
1. 什么是Pawn?
- Pawn 是UE中的一种Actor,代表可以被玩家或AI控制的角色或实体。
- Pawn 本身并不包含具体的外形或碰撞体,需要通过组件(如Mesh、碰撞体等)来实现。
2. 什么是胶囊体(Capsule Component)?
- 胶囊体(CapsuleComponent) 是UE常用的碰撞组件,形状像药丸(圆柱体两头带半球)。
- 主要用于角色的物理碰撞检测,因为其形状适合大多数站立的人物、动物等。
3. Pawn与胶囊体的具体关系
(1)Pawn通常会包含一个胶囊体组件
- 在UE5中,尤其是
Character
类(继承自Pawn)会在其根组件(Root Component)上添加一个UCapsuleComponent
。 - 这个胶囊体用于:
- 碰撞检测(防止角色穿墙、掉下地面等)
- 物理模拟(推动、阻挡等)
- 触发事件(如被击中、进入特定区域)
(2)胶囊体通常是Pawn的根组件
- 在大多数情况下(如
ACharacter
),胶囊体是根组件,所有其他组件(如Mesh、摄像机等)都附着在它上面。 - 这样,无论胶囊体如何移动,整个Pawn都会跟着动。
(3)为什么选择胶囊体?
- 性能高:胶囊体计算效率高,适合实时游戏。
- 形状适中:对人形角色来说,胶囊体既能覆盖大部分体积,又不会出现卡住角落的问题。
(4)Pawn必须有胶囊体吗?
- 不是所有Pawn都必须有胶囊体,但如果希望Pawn能与世界有物理交互(碰撞、阻挡等),通常会添加一个碰撞体(最常见就是胶囊体)。
- 也可以使用Box、Sphere等其他碰撞体,但胶囊体是角色类(Character)默认的选择。
4. 代码示例
// 以Character为例(Character继承自Pawn)ACharacter::ACharacter()
{// 创建胶囊体并设置为根组件CapsuleComponent = CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComponent"));RootComponent = CapsuleComponent;// 添加Mesh并附着在胶囊体上Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh"));Mesh->SetupAttachment(CapsuleComponent);
}
5. 总结
- Pawn是可被控制的实体,胶囊体是常见的碰撞体组件。
- 胶囊体一般作为Pawn/Character的根组件,负责物理碰撞和触发检测。
- 选择胶囊体是因为其适合角色形状、性能高、易于处理。
简化理解:
UE5的Pawn通常“穿”着一个胶囊体,胶囊体负责碰撞检测和物理交互,是Pawn与世界互动的物理壳子。