언리얼에서 저번에 배친한 오브젝트들을 랜덤하게 스폰시키기 위해서 작업을 진행해 봤습니다.
우선 언리얼에서 C++ 액터 클래스로 AItemSpanwer 라는 클래스를 새로 만들어 줬습니다.
그리고 VS에서 SpawnActor() 함수를 사용해서 객체를 생성하게하는 코드를 짜줄건데
SpawnActor(액터 동적 생성)란 런타임에서 새로운 액터를 동적으로 생성하는데 사용됩니다 즉 게임이 시작된 후에 코드로 객체를 생성하고 싶을 때 사용합니다.
Ex)
적(Enemy) 생성
아이템(Item) 생성
무기(Weapon) 생성
프로젝트 타일(총알, 미사일 등) 생성
이런 것들을 동적으로 만들 때 SpawnActor()를 사용합니다.
해더파일에 스폰할 아이템의 클래스를 지정해줍니다.
여기서 TSubClassOf는 언리얼 엔진에서 제공하는 템플릿 클래스이며
특정 클래스, 혹은 특정 클래스의 자식만 선택할 수 있도록 제한하는 역할을 합니다.
그 다음 SpawnActor에 NBC_A_Class를 전달할수 있게 템플릿 매개변수로는
부모 클래스인 ANBC_A을 지정하고, 첫 번째 인자로 실제 생성할 클래스인
NBC_A_Class를 전달하는 코드를 만들었습니다
FMath::RandRange로 난수를 생성할 수 있고
2개의 값을 인자로 받아서 설정해준 범위 내의 무작위 값을 반환해주는 코드입니다.
아래와같이 각각의 좌표 마다 값을 설정해 줬습니다.
그렇게 최종으로 구성한 코드 입니다.
헤더파일
.cpp파일
언리얼에서 랜덤으로 소환된 액터들 모습