2017-10-09 5 views
0

CameraVisibilitySphereコンポーネントが文字と重なっている場合、私は文字メッシュを隠そうとしている第三者の文字の青写真thisを持っています。実際には動作しますが、キャラクターが動いた場合のみです。IsOverlappingComponentは、文字が移動したときにのみ機能しますか?

文字をオブジェクトの近くに移動するだけで、オブジェクトと衝突して文字に近づくようにカメラを回転させると、メッシュは消えません。しかし、私がちょうどキャラクターを少し動かすと、どの方向にあっても、球がまだキャラクターと重なっていても、Overlapping Componentは真実を返し、メッシュはなくなります。

文字が動かずにメッシュが表示されず、視界球がもう重複しないようにカメラを回転させても、何も起こりません。文字を移動すると、メッシュが再び現れます。

私は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を初めて使っています。そのため、環境はよく分かりません。

答えて

0

親で作成されたオーバーラップは、子に継承されます。カメラを手に入れてMultiLineTraceByChannelを実行し、ヒット結果を破棄してヒットした俳優をキャラクターにキャストしてから、キャラクターにコードを出してカスタムイベントで俳優を非表示にすることができます。

関連する問題