uprimitivecomponent
UPrimitiveComponent
🎮 Unreal Engine - UPrimitiveComponent
🏛 定义
UPrimitiveComponent 是 Unreal Engine(以下简称 UE)中所有可渲染、可碰撞组件的基类,属于引擎“场景交互与可视化”的核心模块。它同时承载“视觉渲染”和“物理碰撞”两大核心能力,为 Actor 提供“可见形态”(如网格、粒子)和“物理交互边界”(如碰撞检测、物理模拟),是实现场景中“看得见、摸得着”物体的基础组件(如角色模型、场景道具、地形)。
📚 类继承
UObject
└── UActorComponent
└── USceneComponent
└── UPrimitiveComponent
└── UMeshComponent // 网格类组件基类
│ └── UStaticMeshComponent // 静态网格组件(如场景道具)
│ └── USkeletalMeshComponent // 骨骼网格组件(如角色、动画物体)
│ └── UProceduralMeshComponent // 程序化网格组件(动态生成网格)
└── UParticleSystemComponent // 粒子系统组件(如火焰、烟雾特效)
└── UDecalComponent // 贴花组件(如墙面弹孔、地面血迹)
└── UTextRenderComponent // 3D文本渲染组件(如场景中的提示文字)
└── USkyLightComponent // 天空光组件(场景光照)
└── UDirectionalLightComponent // 平行光组件(如太阳光)
- 父类 USceneComponent:赋予
UPrimitiveComponent世界空间位置、旋转、缩放属性,使其能在场景中准确定位,是实现“空间交互”的基础。 - 核心子类分支:通过继承扩展出不同功能的可视化组件,覆盖“静态物体”“动画角色”“特效”“光照”等所有场景可见元素的需求。
⚡ 关键特性
- 🎨 渲染与碰撞双核心:同时集成渲染管线接口(负责显示)和物理引擎接口(负责碰撞),无需额外组件即可实现“可见且可交互”的物体(如玩家能看到并碰撞到的箱子)。
- 🔍 碰撞形状自定义:支持多种碰撞形状(如胶囊体、球体、立方体、凸包、复杂网格碰撞),可根据组件形态选择最优碰撞方案(如角色用胶囊体碰撞,复杂道具用凸包碰撞)。
- 📊 物理模拟开关:支持开启/关闭物理模拟(
bSimulatePhysics),开启后组件将受重力、力、扭矩影响(如箱子被推开后会物理翻滚),关闭后仅作为碰撞障碍物(如固定的墙壁)。 - 🎯 碰撞响应精细化:可配置对不同“碰撞通道”(如“Pawn”“Projectile”“Visibility”)的响应策略(如“阻挡”“重叠”“忽略”),实现复杂交互逻辑(如子弹能穿透烟雾但不能穿透墙壁)。
- 🌟 材质与渲染控制:支持绑定
UMaterialInterface(材质实例),可动态修改材质参数(如角色受伤时材质变红色),同时支持隐藏/显示(SetVisibility)、渲染层级调整等功能。 - 🔌 事件回调支持:内置碰撞事件(如“开始重叠”“结束重叠”“被击中”),可绑定自定义函数,触发时自动执行逻辑(如玩家触碰道具时触发“拾取”事件)。
⚙️ 常见配置
UPrimitiveComponent 的核心配置集中在“碰撞”“物理”“渲染”三大维度,以下为关键配置项说明: