我有这个第三人称角色蓝图,如果 CameraVisibilitySphere 组件与角色重叠,我试图在其中隐藏角色网格。它确实有效,但前提是角色移动。
如果只是简单地将角色移动到靠近物体的位置,旋转相机使其与物体碰撞并靠近角色,网格就不会消失。但是,如果我只是稍微移动角色,无论向哪个方向,球体仍然与角色重叠,Is Overlapping Component 将返回 true,并且网格消失了。
当网格不可见时,不移动角色,并且我旋转相机以使可见性球体不再重叠,没有任何反应。如果然后我移动角色,网格会重新出现。
我尝试使用 OnComponentBegin/EndOverlap 并且我也对其进行了编码,但没有任何变化,它显示了相同的行为。我设置球体的代码是这样的:
CameraVisibilitySphere = CreateDefaultSubobject<USphereComponent>(TEXT("CameraVisibilitySphere"));
CameraVisibilitySphere->SetupAttachment(FollowCamera);
CameraVisibilitySphere->SetSphereRadius(12.0f);
CameraVisibilitySphere->SetCollisionProfileName(TEXT("Actor"));
CameraVisibilitySphere->bGenerateOverlapEvents = true;
CameraVisibilitySphere->OnComponentBeginOverlap.AddDynamic(this, &ABatteryCollectorCharacter::OnCharacterBeginOverlap);
CameraVisibilitySphere->OnComponentEndOverlap.AddDynamic(this, &ABatteryCollectorCharacter::OnCharacterEndOverlap);
顺便说一句,角色的胶囊被设置为生成重叠事件并与相机重叠。
我应该怎么做才能完成这项工作?而且,最重要的是,重叠事件是否会在同一参与者的子组件上被调用?
我是 Unreal 的新手,所以我仍然不太了解环境。