0
void USpawner::Spawn(TSubclassOf<AMyActor> myactor)
{
UWorld* World = GEngine->GameViewport->GetWorld();
ACharacter* myCharacter = UGameplayStatics::GetPlayerCharacter(World, 0);
FVector loc = myCharacter->GetActorLocation();
FActorSpawnParameters ActorSpawnParameters;
ActorSpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::DontSpawnIfColliding;
AMyActor* NewActor = World->SpawnActor<AMyActor>(myactor, loc, FRotator::ZeroRotator, ActorSpawnParameters);
}
このコードは、最初のアクターをスポーンするために正常に動作し、既存のオブジェクトに対してチェックを行い、何かに衝突する可能性がある場所を生成しません。しかし、私はオブジェクトを2回目で生成しますが、この関数から生成されたオブジェクトは、衝突をチェックする際には考慮されません。DontSpawnIfCollidingはSpawnActor関数によってアクターのスポーンをチェックしません
私は間違っていますか?
ここでは暗闇の中で撮影しましたが、衝突プリセットが同じクラスの俳優を無視するかどうかを確認しましたか? – Gamb
それは問題thxだった。 – Frozendragon
ああ、素晴らしい。私はこの質問を閉鎖し、問題のあるコーダーを助けるための答えとして追加します。 – Gamb