当前位置: 首页 > news >正文

Unreal Engine UPrimitiveComponent

Unreal

  • 🎮 Unreal Engine - UPrimitiveComponent
    • 🏛 定义
    • 🧬 类继承
    • ⚡ 关键特性
    • ⚙️ 常见配置
    • 📝 使用方法
      • 🛠️ 添加组件到 Actor
      • ⚡ 设置碰撞属性
      • 🏋️ 启用物理模拟
      • 🔗 可见性控制
    • 🏊 典型应用场景
    • 📚 常见子类与用途
    • 📦 小结

🎮 Unreal Engine - UPrimitiveComponent

🏛 定义

UPrimitiveComponent 是 所有可见组件(Visible Components)和可碰撞组件(Collidable Components)的基类

它负责处理 渲染、碰撞、物理模拟,是 Unreal Engine 中一切可见对象和物理对象的核心组件。

🧬 类继承

  • 👤 继承关系

    UObject → UActorComponent → USceneComponent → UPrimitiveComponent

  • 📝 子类示例

    • UStaticMeshComponent:用于静态网格渲染与碰撞
    • USkeletalMeshComponent:用于骨骼网格与动画
    • UParticleSystemComponent:用于粒子效果
    • UShapeComponent:基础几何体(如 Box、Sphere、Capsule)

⚡ 关键特性

  • 🔗 渲染支持:提供渲染代理(Render Proxy),负责绘制到场景中
  • 🛠️ 碰撞系统:内置碰撞检测和查询(Overlap、Hit)
  • 🏋️ 物理模拟:支持刚体物理(Rigidbody)、重力、力与扭矩作用
  • 📦 LOD 与可见性:支持裁剪(Culling)、LOD 渲染优化
  • ⚙️ 移动与变换:继承自 USceneComponent,可直接设置位置、旋转、缩放

⚙️ 常见配置

  • 🏷 CollisionEnabled:开启/禁用碰撞检测(NoCollision / QueryOnly / PhysicsOnly / QueryAndPhysics)
  • 🏷 CollisionResponse:控制与不同对象的交互方式(Block、Overlap、Ignore)
  • 🏷 SimulatePhysics:是否启用物理模拟
  • 🏷 bVisible:是否可见
  • 🏷 bCastDynamicShadow:是否投射阴影
  • 🏷 Mobility:可移动性(Static / Stationary / Movable)

📝 使用方法

🛠️ 添加组件到 Actor

// 在 C++ 中创建静态网格组件并附加到 Root
UStaticMeshComponent* MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComp"));
RootComponent = MeshComp;

⚡ 设置碰撞属性

MeshComp->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
MeshComp->SetCollisionResponseToAllChannels(ECR_Block);

🏋️ 启用物理模拟

MeshComp->SetSimulatePhysics(true);
MeshComp->AddForce(FVector(0,0,500));  // 给物体施加向上的力

🔗 可见性控制

MeshComp->SetVisibility(false); // 隐藏组件

🏊 典型应用场景

  • 🤖 静态物体渲染:墙壁、地板、建筑物(UStaticMeshComponent)
  • 🪂 动态角色:骨骼动画角色(USkeletalMeshComponent)
  • ⚙️ 物理交互:可推动、受力、模拟刚体的物体
  • 📦 触发区域:通过 UShapeComponent(如 Box/Sphere)设置触发体积
  • 🔗 特效显示:粒子、光效、特效组件

📚 常见子类与用途

  • 🏛 UStaticMeshComponent:显示静态网格
  • 🏋️ USkeletalMeshComponent:骨骼网格与动画
  • 📦 UShapeComponent(如 Box、Sphere):碰撞体与触发区域
  • 🔥 UParticleSystemComponent:粒子效果
  • 🎮 UDecalComponent:贴花效果

📦 小结

  • UPrimitiveComponent可见性 + 碰撞 + 物理模拟 的核心组件基类
  • ✅ 几乎所有游戏世界中 能看见或能交互的对象 都是它的子类
  • ✅ 提供了 渲染代理、碰撞检测、物理接口,是游戏表现与交互的基础
  • ✅ 开发时通常不会直接使用它,而是通过其子类(UStaticMeshComponentUSkeletalMeshComponent 等)来完成具体需求
http://www.dtcms.com/a/344830.html

相关文章:

  • QT5 UI界面上Scroll Area控件显示滚动条
  • 浏览器开发CEFSharp+X86+win7(十三)之Vue架构自动化——仙盟创梦IDE
  • Lua脚本如何执行主程序的C函数
  • 智能二维码QR\刷IC卡\人脸AI识别梯控系统功能设计需基于模块化架构,整合物联网、生物识别、权限控制等技术,以下是多奥分层次的系统设计框架
  • 攻防世界—bug
  • 深度学习①【张量、全连接神经网络、激活函数、交叉熵损失函数】
  • 机器学习之线性回归:原理、实现与实践
  • 定制化鲜狗粮:宠物经济浪潮下的“精准喂养”革命
  • Python 办公自动化实战:Excel 批量处理 + 自动发邮件
  • 博士招生 | 英国谢菲尔德大学 招收计算机博士
  • 数据结构 -- 栈
  • 鹰角网络基于阿里云 EMR Serverless StarRocks 的实时分析工程实践
  • CDN行业中的SA板卡限速是什么
  • 品牌出海狂潮里,独立站支付的「隐形基建」正在改写规则
  • java18学习笔记-JavaDoc的@snippet注释标签
  • 数据结构 -- 队列
  • 【运维自动化-标准运维】变量的高级用法
  • 去中心化的私有货币与中心化的法定货币的对比分析
  • 数据结构与算法-算法-283移动零
  • 深度分析AI边缘盒子在电力行业的应用与发展
  • 【LeetCode】22. 括号生成
  • 欲打造未来感十足的规划馆,应优先引入哪些沉浸式多媒体技术?
  • Spring Start Here 读书笔记:第9章 Using the Spring web scopes
  • 人脸识别驱动的工厂人体属性检测与预警机制
  • C#开源库ACadSharp读取dwg图元的示例
  • 为何她在“传递情报”时会被干扰?—— 探究 TCP 协议在无线环境中的信号干扰问题
  • 算法题复盘+代码解读(2)—— 两数之和
  • 【功能测试面试题】
  • 【数据结构】B+ 树——高度近似于菌丝网络——详细解说与其 C 代码实现
  • CVPR焦点 | 神经网络新范式:轻量化与精度并行,重塑视觉任务性能天花板