UE5 C++ 动态创建组件component (非构造函数中也可以使用)

这里用样条线作为例子
USplineComponent* SplineComponent = NewObject<USplineComponent>(this, FName(TEXT("SplineC") + FString::FromInt(index++)));
SplineComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
// 设置碰撞
//SplineComponent->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
//SplineComponent->SetCollisionObjectType(ECC_WorldDynamic);
//SplineComponent->SetCollisionResponseToChannel(ECC_GameTraceChannel1, ECollisionResponse::ECR_Overlap);
SplineComponent->RegisterComponentWithWorld(GetWorld());

// 清除样条线的点
SplineComponent->ClearSplinePoints();
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的例子,展示如何在UE4 C++创建一个Procedural Mesh。请注意,此代码仅列出了必要的参数和函数,如果需要其他参数或功能,请参考UE4 API文档。 首先,在你的.h文件,添加以下头文件和类声明: ```cpp #include "ProceduralMeshComponent.h" UCLASS() class YOURPROJECT_API AYourActor : public AActor { GENERATED_BODY() public: AYourActor(); UPROPERTY(VisibleAnywhere) UProceduralMeshComponent* ProceduralMesh; void GenerateMesh(); }; ``` 接下来,在.cpp文件实现构造函数和GenerateMesh函数: ```cpp #include "YourActor.h" AYourActor::AYourActor() { // 在构造函数创建Procedural Mesh Component ProceduralMesh = CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("ProceduralMesh")); RootComponent = ProceduralMesh; } void AYourActor::GenerateMesh() { // 创建4个顶点和3个三角形 TArray<FVector> Vertices = { FVector(0.f, 0.f, 0.f), FVector(100.f, 0.f, 0.f), FVector(0.f, 100.f, 0.f), FVector(100.f, 100.f, 0.f) }; TArray<int32> Triangles = { 0, 1, 2, 2, 1, 3 }; // 创建一个新的Procedural Mesh Section ProceduralMesh->CreateMeshSection_LinearColor(0, Vertices, Triangles, TArray<FVector>(), TArray<FVector2D>(), TArray<FColor>(), TArray<FProcMeshTangent>(), true); // 应用材质和光照 ProceduralMesh->SetMaterial(0, YourMaterial); ProceduralMesh->SetCastShadow(true); ProceduralMesh->SetCollisionObjectType(ECC_WorldDynamic); ProceduralMesh->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics); ProceduralMesh->SetCollisionResponseToAllChannels(ECR_Block); } ``` 这个例子创建了一个四边形,将其添加到Procedural Mesh Component,并应用材质和光照。在使用之前,你需要在蓝图将这个Actor放入场景,并在蓝图调用GenerateMesh函数来创建网格。 请注意,这个例子仅用于演示目的,实际使用时,你需要根据你的需求修改参数和函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值