Unreal Engine UStaticMeshComponent

Unreal

  • [Unreal Engine - UStaticMeshComponent](#Unreal Engine - UStaticMeshComponent)
    • [🏛 定义](#🏛 定义)
    • [🏛 类继承](#🏛 类继承)
    • [⚡ 关键特性](#⚡ 关键特性)
    • [⚙️ 常见配置](#⚙️ 常见配置)
    • [🛠️ 使用方法](#🛠️ 使用方法)
      • [📚 在 C++ 中使用](#📚 在 C++ 中使用)
      • [📚 在蓝图中使用](#📚 在蓝图中使用)
    • [🎮 典型应用场景](#🎮 典型应用场景)
    • [📚 常见子类与用途](#📚 常见子类与用途)
    • [📝 小结](#📝 小结)

Unreal Engine - UStaticMeshComponent

🏛 定义

UStaticMeshComponent 是 Unreal Engine 中用于在场景中渲染 静态网格体(Static Mesh) 的核心组件。

它继承自 UPrimitiveComponent,不仅具备渲染功能,还支持碰撞、LOD、材质应用等。


🏛 类继承

继承关系如下:

复制代码
UObject
 └── UActorComponent
       └── USceneComponent
             └── UPrimitiveComponent
                   └── UMeshComponent
                         └── UStaticMeshComponent

⚡ 关键特性

  • 📦 渲染静态网格体 :直接在场景中显示 .fbx.obj 等导入的静态模型。
  • 🛠️ 支持材质系统:可为网格的多个材质槽绑定不同材质。
  • 🎮 碰撞支持:内置简单或复杂碰撞(基于网格或自定义)。
  • ⚙️ LOD(Level of Detail):自动切换不同细节级别的模型以优化性能。
  • 🏷 实例化支持 :可通过 InstancedStaticMeshComponent 派生类实现高效批量渲染。
  • 🔗 与光照系统集成:支持光照贴图、阴影投射、反射捕捉。

⚙️ 常见配置

  • 🏛 Static Mesh:指定所要渲染的静态网格体资源。
  • 🛠️ Materials:绑定的材质列表。
  • 🎮 Collision Presets:碰撞配置(如 BlockAll、OverlapAll、NoCollision)。
  • Cast Shadows:是否投射阴影。
  • 📦 Mobility:可设置为 Static / Stationary / Movable,影响渲染与性能。
  • 🏷 LOD Settings:网格细节级别控制。

🛠️ 使用方法

📚 在 C++ 中使用

cpp 复制代码
UStaticMeshComponent* MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComp"));
MeshComp->SetStaticMesh(LoadObject<UStaticMesh>(nullptr, TEXT("/Game/Meshes/MyMesh.MyMesh")));
MeshComp->SetMaterial(0, MyMaterial);
MeshComp->SetCollisionProfileName(UCollisionProfile::BlockAll_ProfileName);
RootComponent = MeshComp;

📚 在蓝图中使用

  1. 拖拽 StaticMeshComponent 到 Actor。
  2. Details 面板设置 Static Mesh、Material、Collision 等。
  3. 通过节点控制其显示、隐藏、材质切换等。

🎮 典型应用场景

  • 🏛 场景搭建:建筑、道路、树木、道具等固定场景物体。
  • 游戏交互对象:可拾取物体、陷阱、机关。
  • 🏷 装饰元素:角色装备的附加部件(如武器、背包)。
  • 📦 LOD 优化:大场景中远近物体的性能优化。

📚 常见子类与用途

  • UInstancedStaticMeshComponent 🏷:支持批量实例渲染,大幅提升性能。
  • UHierarchicalInstancedStaticMeshComponent ⚡:支持层级化实例化,常用于植被系统。
  • ULandscapeMeshProxyComponent 🏛:用于大地形渲染代理。

📝 小结

  • UStaticMeshComponent 是静态网格渲染的核心组件
  • 支持材质、碰撞、LOD、光照等完整渲染体系
  • 通过 C++ 与蓝图均可便捷使用
  • 子类扩展了实例化渲染、层级批量渲染等高级功能
  • 是关卡构建与性能优化中最常见、最重要的组件之一