언리얼 엔진 공부를 시작했다
이득우의 언리얼 c++ 게임 개발의 정석를 보며 진행할 예정이고
유니티에서 비교할 대상이 있다면 비교를 해보려고도 한다
오늘은 분수를 만들어보려고 한다
사용한 에셋은 도서예제파일과 마켓스토어를 통해 구할 수 있다
언리얼엔진에서 C++ 파일은 Tools - New C++ Class 를 통해 가능하다
Parent Class 는 Actor로 지정해주자
Class의 이름을 Fountain으로 짓고 헤더 파일에서 다음과 같이 작성해주었다
UPROPERTY는 언리얼엔진 상의 프로퍼티라는 것을 알려주는 매크로이고,
괄호 안에 다양한 기능을 명시해 둘 수 있다
VisibleAnywhere
디테일 창에서 컴포넌트가 보이는 기능
EditAnywhere
디테일 창에서 컴포넌트를 수정할 수 있는 기능
이 두 기능은 흡사 Unity 상의 Serializable
과 유사하다고 생각한다
이후 cpp파일에서 헤더 파일에서 선언한 컴포넌트들을 생성해주었다
CreateDefaultSubobject<>
는 Unity 상의 getComponent<>
와 유사하다고 생각한다
이를 통해 컴포넌트를 생성해주었고,
이들의 상속 관계 및 위치도 정리해주었다
부모 설정 (Body를 water의 부모로 설정)
// UE5 Water->SetupAttachment(Body);
// Unity3D Water.transform.parent = Body.transform;
위치 변경
// UE5 Water->SetRelativeLocation(FVector(0.0f, 0.0f, 135.0f);
// Unity3D Water.transform.position = new Vector3(0f, 0f, 135f);
이때 UE5에서는 Water를 포인터변수
로 지정해주었기 때문에 ->
를 사용하는것을 유의하자
마지막으로 에셋을 컴포넌트에 추가해줄 것이다
ConstructorHelper
에 FObjectFinder
를 통해 레퍼런스 주소를 받아온다
참고로 레퍼런스 주소는 에셋을 우 클릭 후 Copy Reference 를 통해 복사 할 수 있다
이후 에셋을 찾는데 성공했다면 컴포넌트를 에셋에 연결해줌으로서 에셋 제작이 끝나게 된다