[언리얼엔진5 입문] 26. C++ 프로젝트 컴파일, UPROPERTY 변수

ASP·2024년 4월 1일
0

언리얼엔진5 입문

목록 보기
26/41

목표 : 처음으로 C++ 클래스를 생성해볼 것임


먼저 기본 에디터를 바꿔줘야 함. 프로젝트 설정이 아닌 에디터 설정.

Edit > Editor Preferences > Source Code > Visual studio 2022

생성하려는 클래스는 C++로 프로그래밍한 움직이는 플랫폼.

메뉴바 Tools > New C++ Class > Actor > MovingPlatform 클래스 생성

비주얼 스튜디오 에디터로 가서 가장 먼저 솔루션 빌드 ( 단축키 Ctrl + Shift + B )

새로 추가된 C++ 코드를 에디터에서 실행할 수 있는 바이너리 실행 파일로 변환하는 과정.

빌드 후 F5를 눌러서 프로젝트를 다시 열면 Content Browser에 C++ Classes 폴더가 생긴 것을 확인할 수 있음.

이렇게 생성된 Actor Class를 래밸에 드래그 앤 드롭할 수 있음. 그러나 지금 해당 액터는 위치도 없는 완전히 빈 상태.


소스코드는 헤더파일(.h)과 소스파일(.cpp)로 나뉘는데, 헤더파일은 근본적으로 블루프린트처럼 함수와 변수를 추가할 수 있는 파일.

cpp는 본질적으로 이벤트 그래프와 비슷해서 실제로 코드를 작성할 수 있음.

따라서 먼저 변수를 추가하기 위해 헤더파일을 편집.

C++ 클래스를 생성하면 위의 코드가 기본적으로 작성된 상태로 생성됨.

따라서 원하는 변수를 추가하기 위해 class 문 안에 새로운 변수를 작성

먼저 정수형 변수를 생성. 언리얼에선 정수형 자료형으로 int32 를 사용.

int32 MyInt = 99; 를 통해 MyInt 라는 정수형 변수를 생성함.

그러나 이렇게만 하면 이 내용이 블루프린트 에디터에서 보이지 않음.

보이게 하려면 표시해야 할 변수가 있다는 점을 언리얼에 알려주기 위해 그 앞의 줄에 UPROPERTY()을 써줘야 하고 괄호 안의 인자로 EditAnywhere 써줌.

UPROPERTY는 아래 줄에 있는 정수 선언의 일부이므로 뒤에 세미콜론(;) 을 쓸 필요 없음. 단지 읽기 편하게 하기 위해 줄을 나눠줌.

다했으면 에디터를 닫았다가 다시 컴파일하고 다시 열면 MovingPlatform 액터에 새로 생성된 변수가 적용됨.

그러나 코드를 변경할 때마다 이러면 매우 불편함.

이를 위한 기능이 라이브 코딩.

언리얼엔진 에디터의 오른쪽 하단에 보면 위와 같은 모양의 버튼이 있음.

해당 버튼을 누르면 게임 C++ 코드를 즉시 다시 컴파일하고 코드에서 작성한 내용이 적용됨.

MovingPlatform 클래스에 방금 생성한 MyInt 변수가 속성으로 생긴 것을 확인할 수 있음.

그러나 라이브 코딩 관련한 문제가 있음. 변경했던 프로퍼티가 사라지거나 에디터에서 변경한 값이 사라지는 경우가 있음.

이럴땐 에디터 편집 설정에서 라이브 코딩 체크박스를 해제하고 소스 코드 변경 시 마찬가지로 똑같은 버튼을 클릭하여 변경된 코드를 컴파일하고 적용할 수 있음.

마찬가지로 새로운 변수를 생성하고 저장한뒤, 똑같은 버튼을 클릭하여 적용

해당 변수들에 할당된 값들은 전부 디폴트값임.

에디터, 블루프린트, 레벨 등에서 이 값을 수정하면 비주얼 스튜디오에서 디폴트값을 다른 값으로 수정해도 적용되지 않음.

단지 디폴트값이므로 언리얼 에디터에서 변경한 내용이 우선적으로 적용됨.

profile
언리얼엔진 개발자의 길

0개의 댓글