c++ - UE4 CableComponent 因未知原因未渲染
问题描述
我正在尝试使用 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 是一个没有任何功能的默认actor,它基本上只是用来存储第二个电缆连接点的位置。
当我运行上面的代码并触发抓钩时,我编写的物理触发,但 CableComponent 没有出现在屏幕上。我是否错误地附加了端点?
我试过记录 Cable->EndLocation 的位置,它似乎指向正确的位置。但是我找不到检查 CableComponent 是否仍然连接到 FP_MuzzleLocation 的方法,所以我怀疑第一个 SetAttachEndTo 可能没有正确设置初始附件,因此当电缆产生时,两个附件端都位于钩点。
解决方案
推荐阅读
- amazon-dynamodb-streams - 在 DynamoDB 表上流式传输
- javascript - Mongodb:使用node.js mongoose将新数据对象添加到对象数组中
- linux - Bash shell:找不到命令
- javascript - 将两个脚本合并为一个脚本
- c++ - C++:类构造的 Undef Ref 错误
- vue.js - 每次挂载 Vue 组件时,Jest 单元测试都会失败
- pdf - BlueBeam 通过脚本或模板设置状态颜色?
- python - Python Pandas IF AND 语句
- javascript - 尽管范围请求支持,但视频未在 Safari 中播放
- google-sheets - Google 表格:从一列添加 URL 并将其包装在文本中(自动)