2017-10-09 78 views
0

我有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的子組件上嗎?

我是新來的虛幻,所以我還是不太瞭解這個環境。

回答

0

在父級中創建的重疊在子級中繼承。你可以嘗試讓你的相機,並做一個MultiLineTraceByChannel,打破命中的結果,並將命中的演員投給你的角色,然後在你的角色中,通過自定義事件觸發代碼來隱藏角色。

相關問題