2Bbear's knowledge workshop

caution!!

this document is made in unreal 4.14

-------------------------------------------------------------------------------------------------------


목표


1    월드 내에 Spawner(world 상에 있는 액터)를 만들어 Monster(액터지만 world상에 없는) 를 월드에 출현 시킨다.




-------------------------------------------------------------------------------------------------------


Speudo Code



SpawnerLocating이 MyMonster을 World에 출현시킨다.


각 클래스에 있는 Mesh와 Material은 단순히 테스트 실행시 보여주기 쉽기 위해 집어 넣었을 뿐이다.


SpawnPointer라는 MyMoster형의 포인터를 생성하고 거기에 동적으로 메모리를 할당하고 그것을 월드상에 출현 시킨다.


-------------------------------------------------------------------------------------------------------


+++++++++++++++




+++++++++++++++++++++++++++++++++++++++




++++++++++++++++++++++++++++++




-------------------------------------------------------------------------------------------------------


Monster 클래스의 경우 단순한 Mesh 와 Material만 붙여 놓았기에 설명하지 않겠습니다.


-------------------------------------------------------------------------------------------------------


SpawnerLocating 클래스를 설명하겠습니다,


헤더 파일부터 살펴봅니다.


상단의 #include "MyMonster.h" 는 MyMonster 클래스 형태의 포인터를 만들기 위해 받아옵니다.


중요한 것은

#include "SpawnerLocating.generated.h" 

위에 선언을 해주어야 한다는 것입니다. generated 헤더가 가장 마지막으로 불려져야 언리얼 코드가 꼬이지 않고 실행됩니다.


AMyMonster* SpawnPointer;

몬스터형 포인터를 선언합니다. 이 후 이 포인터에 실재 몬스터를 할당해서 이후 월드에 출현시킵니다


------------------------------------------------------------------------------------------------------

/////////////////////////////////SpawnPointer

if (GetWorld() && objectState == true)

{

FActorSpawnParameters MyMonsterSpawnParam;


//Spawn Monster Naming 

FString NewActorName = "021517HowtoLocating object";

MyMonsterSpawnParam.Name = FName(*NewActorName);


//Spawn Monster Locating 

FVector SpawnLocation = GetActorLocation() + FVector(1.f, 0.f, 0.f) * 300.f;


SpawnPointer = GetWorld()->SpawnActor<AMyMonster>(SpawnLocation, FRotator(0.f), MyMonsterSpawnParam);


일단은 GetWorld로 월드가 있는지 판단하고. 저 objectState는 제가 단순히 만든 실행 bool 스위치입니다. true일경우 방금 만든 저 위의 코드들이 다 실행됩니다.


FActorSpawnParameters MyMonsterSpawnParam


FActorSpawnParameters 형의  MyMonsterSpawnParam를 선언합니다.


FActorSpawnParameters 는 액터의 파라미터가 담긴 형태입니다. 기본적인 Name 등등이 담겨있습니다.


그래서 FString으로 문자열을 만듭니다. 이 후 이 문자열은 Name으로 사용합니다.


FName형의 생성자에 방금 쓴 문자열을 넣습니다.


FVector는 벡터형을 담는 구조체입니다.


SpawnLocation이라는 벡터형에 Getworld()->SpawnActor<출현시킬 클래스액터>(벡터형 위치, 벡터형 회전,넣을 액터 파라미터)


Getworld()는 world의 메소드들을 담고 있습니다(?)


SpawnActor라는 메소드를 실행시키면 출현시킬 클래스 액터를 지정하고 매개변수로 출현 위치, 각도, 파라미터를 넣습니다.