UE4 CableComponent 由于未知原因未呈现

时间:2021-04-07 07:51:57

标签: c++ unreal-engine4

我正在尝试使用 C++ 而不是蓝图来创建抓钩的视觉方面,但我一直在尝试渲染它。据我所知,这应该正确设置。这是我的代码:

// CharacterConstructor:
ADemoCharacter() {
...
    Cable = CreateDefaultSubobject<UCableComponent>(TEXT("Cable"));
    Cable->SetupAttachment(FP_MuzzleLocation);
    Cable->SetAttachEndTo(this, RootComponent->GetDefaultSceneRootVariableName());
    Cable->NumSegments = 1;
    Cable->EndLocation = FVector(0.0f, 0.0f, 0.0f);
...
}

void OnGrapple() {
    ...
    // Previous code does SphereTrace and finds a hit, the following code runs only if a hit is successfully found:
    if (hit) {
        FVector_NetQuantize impactPoint = outHit.ImpactPoint;
        
        FVector HookPointPosition = FVector(impactPoint.X, impactPoint.Y, impactPoint.Z);
        FRotator HookPointRotation = FRotator(0.0f, 0.0f, 0.0f);
        FActorSpawnParameters SpawnParams;

        AActor* HookActor = GetWorld()->SpawnActor<AActor>(HookPoint, HookPointPosition, HookPointRotation, SpawnParams);

        Cable->SetAttachEndTo(HookActor, FName(TEXT("None")), FName(TEXT("None")));
    }
    ...
}

在这个例子中,HookPoint 是一个没有功能的默认角色,它基本上只是用来存储第二个电缆连接点的位置。

当我运行上面的代码并触发抓钩时,我在中编码的物理会触发,但 CableComponent 没有出现在屏幕上。我是否错误地附加了端点?

我已经尝试记录 Cable->EndLocation 的位置,它似乎指向正确的位置。但是我找不到检查 CableComponent 是否仍然连接到 FP_MuzzleLocation 的方法,所以我怀疑第一个 SetAttachEndTo 可能没有正确设置初始附件,因此当电缆产生时,两个附件末端都位于挂钩点。

0 个答案:

没有答案