Choose your operating system:
Windows
macOS
Linux
SpawnActor 메서드
Actor
의 새 인스턴스를 생성하는 과정을
스폰
(spawn)이라 합니다.
Actor
의 스폰은
UWorld::SpawnActor()
함수를 이용합니다.
이 함수는 지정된 클래스의 새 인스턴스를 생성한 다음 새로 생성된
Actor
로의 포인터를 반환합니다.
UWorld::SpawnActor()
는 클래스 계층구조 내
Actor
클래스를 상속하는 클래스 인스턴스를 생성할 때만 사용해야
합니다.
AActor* UWorld::SpawnActor
(
UClass* Class,
FName InName,
FVector const* Location,
FRotator const* Rotation,
AActor* Template,
bool bNoCollisionFail,
bool bRemoteOwned,
AActor* Owner,
APawn* Instigator,
bool bNoFail,
ULevel* OverrideLevel,
bool bDeferConstruction
)
파라미터 |
설명 |
|
---|---|---|
|
스폰시킬
Actor
의 클래스를 나타내는
|
|
|
옵션. 스폰시킬
Actor
의
|
|
|
옵션.
Actor
를 스폰시킬 초기 위치를 제공하는
|
|
|
옵션.
Actor
를 스폰시킬 초기 방향을 제공하는
|
|
|
옵션. 새
Actor
를 스폰할 때 템플릿으로 사용할
|
|
|
옵션.
Actor
스폰시 콜리전 테스트를 할 것인지를 결정하는
|
|
|
옵션.
|
|
|
옵션. 스폰된
Actor
를 소유하는
|
|
|
옵션. 스폰된
Actor
가 입힌 피해를 담당하는
|
|
|
옵션. 특정 조건을 충족하지 않을 때 스폰 실패여부를 결정하는
|
|
|
옵션.
Actor
를 어느
|
|
|
옵션. construction script 를 실행시킬지 결정하는
|
|
반환값 |
||
|
사용법
AKAsset* SpawnedActor1 = (AKAsset*) GetWorld()->SpawnActor(AKAsset::StaticClass(), NAME_None, &Location);
스폰 함수 템플릿
Actor 스폰을 보다 쉽게 하기 위해, 가장 흔히 사용되는 패턴에 대해서는 여러가지 함수 템플릿이 제공되어 있습니다. 여기에는 파라미터 일부 부분집합만 필요한 데다 반환되는 Actor 유형을 지정할 수 있기 때문에 Actor 생성이 훨씬 단순해 집니다.
T 인스턴스 스폰, T 포인터 반환
스폰 작업을 수행하는
Actor
의 루트 컴포넌트와 같은 위치 같은 방향에
T
템플릿 클래스의 인스턴스를 스폰시키는 함수 템플릿으로, 템플릿 클래스와 같은 유형의 해당 인스턴스 포인터,
즉
T*
를 반환합니다. 소유하는(owning)
Actor
, 선동하는(instigating)
Pawn
, 스폰되는
Actor
가 침입(encroach)할 때 스폰 작업 실패 여부,
이미 월드에 존재하는 다른
Actor
와의 충돌 여부 등을 지정할 수 있습니다.
/** 클래스 T 를 스폰하고 반환, 루트 컴포넌트의 기본 방향과 위치를 따릅니다. */
template< class T >
T* SpawnActor
(
AActor* Owner=NULL,
APawn* Instigator=NULL,
bool bNoCollisionFail=false
)
{
return (T*)(GetWorld()->SpawnActor(T::StaticClass(), NAME_None, NULL, NULL, NULL, bNoCollisionFail, false, Owner, Instigator));
}
사용법
MyHUD = SpawnActor<AHUD>(this, Instigator);
트랜스폼 정보로 T 인스턴스 스폰, T 포인터 반환
지정된
Location
과 지정된
Rotation
에 템플릿 클래스
T
의 인스턴스를 스폰시키는 함수 템플릿으로, 템플릿 클래스와 같은 유형의 해당 인스턴스로의 포인터,
즉
T*
를 반환합니다. 위치와 방향에 더해 소유중인
Actor
, 선동중인
Pawn
, 스폰되는
Actor
침입에 따른 스폰 작업 실패 여부,
월드에 이미 존재하는 다른
Actor
와의 충돌 여부 등을 지정할 수 있습니다.
/** 클래스 T 스폰 후 반환, 월드 포지션은 강제 설정합니다. */
template< class T >
T* SpawnActor
(
FVector const& Location,
FRotator const& Rotation,
AActor* Owner=NULL,
APawn* Instigator=NULL,
bool bNoCollisionFail=false
)
{
return (T*)(GetWorld()->SpawnActor(T::StaticClass(), NAME_None, &Location, &Rotation, NULL, bNoCollisionFail, false, Owner, Instigator));
}
사용법
Controller = SpawnActor<AController>(GetLocation(), GetRotation(), NULL, Instigator, true);
클래스 인스턴스 스폰, T 포인터 반환
스폰 작업을 수행하는
Actor
의 루트 컴포넌트와 같은 위치 같은 방향에 지정된
Class
의 인스턴스를 스폰시키는 함수 템플릿으로,
템플릿 클래스 유형으로 형변환된 해당 인스턴스로의 포인터, 즉
T*
를 반환합니다. 여기에 지정된
Class
는 템플릿 클래스
T
의 자손이어야 합니다.
클래스에 추가로 소유중인
Actor
, 선동중인
Pawn
, 스폰된
Actor
의 침범에 따른 스폰 작업 실패 여부, 월드에 이미 존재하는 다른
Actor
와의 충돌 여부 등을
지정할 수 있습니다.
/** 주어진 클래스를 스폰하고 클래스 T 포인터를 반환, 루트 컴포넌트의 기본 방향과 위치를 따릅니다. */
template< class T >
T* SpawnActor
(
UClass* Class,
AActor* Owner=NULL,
APawn* Instigator=NULL,
bool bNoCollisionFail=false
)
{
return (Class != NULL) ? Cast<T>(GetWorld()->SpawnActor(Class, NAME_None, NULL, NULL, NULL, bNoCollisionFail, false, Owner, Instigator)) : NULL;
}
사용법
MyHUD = SpawnActor<AHUD>(NewHUDClass, this, Instigator);
트랜스폼 정보로 클래스 인스턴스 스폰, T 포인터 반환
지정된
Location
과
Rotation
에 지정된
Class
인스턴스를 스폰시키는 함수 템플릿으로, 템플릿 클래스와 같은 유형의 해당 인스턴스로의 포인터, 즉
T*
를 반환합니다. 여기에 지정된
Class
는
템플릿 클래스
T
의 자손이어야 합니다. 클래스, 위치, 방향에 추가로 소유중인
Actor
, 선동중인
Pawn
, 스폰되는
Actor
침입에 따른 스폰 작업 실패 여부, 월드에 이미 존재하는 다른
Actor
와의 충돌 여부 등을
지정할 수 있습니다.
/** 주어진 클래스를 스폰하고 클래스 T 포인터를 반환, 월드 포지션은 강제 설정합니다. */
template< class T >
T* SpawnActor
(
UClass* Class,
FVector const& Location,
FRotator const& Rotation,
AActor* Owner=NULL,
APawn* Instigator=NULL,
bool bNoCollisionFail=false
)
{
return (Class != NULL) ? Cast<T>(GetWorld()->SpawnActor(Class, NAME_None, &Location, &Rotation, NULL, bNoCollisionFail, false, Owner, Instigator)) : NULL;
}
사용법
APawn* ResultPawn = SpawnActor<APawn>(DefaultPawnClass, StartLocation, StartRotation, NULL, Instigator);