반응형
[Unreal/C++] Mesh Socket 위치에서 SpawnActorDeferred 하기
언리얼 엔진에서 액터를 생성하는 방법입니다.
Spawn Actor와 다르게 SpawnActorDeferred는 모든 설정이 완료된 후 FinishSpawning을 호출해주어야 정상적으로 배치됩니다.
FVector location = GetMesh()->GetSocketLocation("ThrowSocket"); // 소켓 이름으로 소켓의 위치를 가져온다.
FTransform transform(location); // SpawnActorDeferred를 하기 위한 Transform을 설정한다.
AFireBall* fireBall = GetWorld()->SpawnActorDeferred<AFireBall>(FireBall, transform, this, this, ESpawnActorCollisionHandlingMethod::AlwaysSpawn); // Spawn을 위한 설정을한다.
if (fireBall == nullptr) return; // Spawn이 되어 객체가 설정되었는지 확인한다.
// 설정이 모두 완료된 후 FinishSpawning을 호출하여 세계에 배치 시킨다.
fireBall->FinishSpawning(fireBall->GetTransform());
SpawnActorDeferred<Class>(TSubclassOf<Class>, transform, this, this, ESpawnActorCollisionHandlingMethod::AlwaysSpawn); // Spawn을 위한 설정을한다.
// 함수 원형
template< class T >
T* SpawnActorDeferred(
UClass* Class,
FTransform const& Transform,
AActor* Owner = nullptr,
APawn* Instigator = nullptr,
ESpawnActorCollisionHandlingMethod CollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::Undefined
)
* 주어진 클래스를 생성하고 클래스 T 포인터를 반환하며 강제로 월드 변환을 설정합니다(이것은 스케일도 허용함을 참고하세요). 블루프린트 컨스트럭션 스크립트를 실행하지 않습니다.
* 호출자에게 사전에 매개변수를 설정할 수 있는 기회를 제공합니다. 호출자는 구성 호출을 담당합니다.
* UGameplayStatics::FinishSpawningActor를 호출해야 합니다. (AActor::OnConstruction 참고)
반응형
'Unreal > Manual' 카테고리의 다른 글
Unreal FireBall 만들기 (0) | 2024.01.12 |
---|---|
Unreal 적이나 목적지의 방향 구하기 (0) | 2024.01.12 |
Unreal Particle Object 가져오기 (0) | 2024.01.11 |
Unreal Collider On/Off 충돌체 켜고 끄기 (0) | 2024.01.11 |
Unreal Debug 용 원(Circle) 그리기 (0) | 2024.01.11 |