언리얼 엔진5 강의 요약 – 3. 창고부수기 게임 2편 (Class/Instance, Data Types)

Class 와 Instance

이전글에서도 말했지만 OOP를 알고 오는 게 매우 심신에 좋긴 함.

이번 창고부수기 게임은 창고에 있는 기물들을 플레이어가 총알을 발사해서 부수는 게임임.

그러면 총알 클래스를 만들고, 쏠 때마다 인스턴스 찍어서 발사하면 되는거다.

간단하게 클래스는 틀이고, 인스턴스는 틀로 찍어낸 실제 물체라고 생각하면 됨.

총알마다 새롭게 정의할 필요 없잖아?ㅇㅇ

언리얼에서도 이 OOP처럼 할 수 있게끔 내가 에디터에서 정의한 액터 오브젝트를 클래스화 시켜주는 기능이 있음. 그럼 클래스화 이후 찍어다 쓰면 되는 거임.

총알 만들기

이렇게 셰이프 액터 추가해서 총알처럼 만들고,

디테일에 블루프린트 아이콘 누르면, 블루프린트 클래스 생성할 수 있게 됨.

BP_ 접두어 붙여주는 것이 좋음.

이렇게 만들어진 BP 클래스의 설정을 만져주자.

머터리얼을 총알 비슷한 걸로 아무거나 정해주고,

피직스 시뮬레이트를 켜서 물리 영향을 받게 해주자.

그러면 이제 총알에 대한 틀(Class/Object)을 만든 것이고,

이 틀을 이용해서 실제 총알(Instance)을 찍어내보자.

총알 찍어내기

다시 레벨의 블루프린트로 들어가서, 이벤트를 만들자.

Spawn Actor from Class를 찾아서 연결해주고, 클래스를 아까 총알 클래스로 지정.

그다음 주황으로 표기된 Spawn Transform 부분을 우클릭하면,

구조체 핀 분할이 있다. 이를 선택해 쪼개주자.

이렇게 스폰될 인스턴스의 위치, 회전, 크기등을 지정해 줄 수 있다.

트랜스폼이 그런 정보 구조체인 것.

자 여기서 시뮬레이션 다시 해보면, 스페이스바 누를 때마다 지정 된 위치에

총알 스폰됨. 근데 쏴야지? 그럼 이전에 배운 임펄스까지 입혀보자.

SpawnActor의 리턴 값이 생성된 오브젝트 레퍼런스임. 여기서 실제 물체를 담당하는 static mesh component 가져와서

addImpulse 함수에 타겟에 연결해주어야 함. 근데 이거만 연결하면 끝나는게 아님. 실행 핀(흰색 선)도 연결해줘야 흐름이 움직인다.

파랑만 연결하면 임펄스 반영이 안 됨.

Data Types

  • Integers
  • Floats
  • Strings
  • Bools
  • Struct : 오브젝트와 흡사, 레퍼런스 없고 작음
  • Object : 데이터 타입들의 집합으로 액터, 컴포넌트 등이 있음

Object와 Struct에 대한 설명 : 기본적인 데이터 타입을 독립적으로 사용하면 물체를 표현하기에 정보가 부족하다. 그래서 이를 Struct나 Object에 하나로 합쳐 의미있는 물체의 표현을 만들어 내는 것.

ex) 사람 struct/object – 나이(Int), 키(float), 이름(string), 성별(bool), 사는 곳(string) …

블루프린트의 색깔 핀을 통해 데이터 타입을 쉽게 알아볼 수 있기도 함.(ex : 붉은 핀은 bool)

마치며…


자 이제 맵을 휘저어 다니며 조준하고 쏠 수 있는 총알을 만들어보자!

이전글

다음글


Posted

in

, ,

by

Tags:

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다