我有this第三人稱角色藍圖,我試圖隱藏角色網格,如果CameraVisibilitySphere組件與角色重疊。它實際上是有效的,但只有當角色移動時纔有效。僅當角色移動時,IsOverlappingComponent才起作用?
如果只是簡單地將角色移動到一個物體附近,旋轉相機使其與物體碰撞並靠近角色,則網格不會消失。但是,如果我只是將角色移動一點,無論朝哪個方向移動,並且球體仍然與角色重疊,重疊組件將返回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);
BTW人物的囊被設置爲生成重疊事件,並用相機重疊。
我該怎麼做才能做到這一點?而且,最重要的是,重疊事件會被調用到同一個actor的子組件上嗎?
我是新來的虛幻,所以我還是不太瞭解這個環境。