修改 ATriggerSphere 半径?
Modifying ATriggerSphere radius?
我在我的游戏中创建了一个 ATriggerSphere 实例,并将其放置在我角色的位置,如下所示:
//Create activate trigger radius
activateRadiusTrigger = GetWorld()->SpawnActor<ATriggerSphere>(ATriggerSphere::StaticClass(),GetActorLocation(), GetActorRotation());
activateRadiusTrigger->SetActorHiddenInGame(false);
我现在需要调整它的半径。我在蓝图中看到 Shape 下有一个参数可以让我更改 "Sphere Radius" 的值,但我找不到 C++ 等效字段。有人能告诉我这是怎么做到的吗?谢谢!
如果您在引擎 headers 中查找 TriggerSphere.h,您可以在那里找到它的 public 接口。看起来 ATriggerSphere 使用了一个碰撞组件,您可以使用 GetCollisionComponent() 获得该组件。我假设这个组件是一个 USphereComponent,你可以在上面调用 SetSphereRadius!
所以尝试:
Cast<USphereComponent>(activateRadiusTrigger->GetCollisionComponent())->SetSphereRadius(NewRadius);
我在我的游戏中创建了一个 ATriggerSphere 实例,并将其放置在我角色的位置,如下所示:
//Create activate trigger radius
activateRadiusTrigger = GetWorld()->SpawnActor<ATriggerSphere>(ATriggerSphere::StaticClass(),GetActorLocation(), GetActorRotation());
activateRadiusTrigger->SetActorHiddenInGame(false);
我现在需要调整它的半径。我在蓝图中看到 Shape 下有一个参数可以让我更改 "Sphere Radius" 的值,但我找不到 C++ 等效字段。有人能告诉我这是怎么做到的吗?谢谢!
如果您在引擎 headers 中查找 TriggerSphere.h,您可以在那里找到它的 public 接口。看起来 ATriggerSphere 使用了一个碰撞组件,您可以使用 GetCollisionComponent() 获得该组件。我假设这个组件是一个 USphereComponent,你可以在上面调用 SetSphereRadius!
所以尝试:
Cast<USphereComponent>(activateRadiusTrigger->GetCollisionComponent())->SetSphereRadius(NewRadius);