본문 바로가기
Unreal/Manual

Unreal C++ Widget 변수 사용하기

by Dev_카페인 2023. 11. 26.
반응형

[Unreal/C++] Widget 변수 사용하기

 

1. UserWidget C++ 클래스 만들기

2. UserWidget C++ 클래스 기반 블루프린트 만들기

3. 팔레트에서 Widget 배치하기

4. 변수 인지 체크하기

5. 클래스에서 위젯 이름과 똑같은 변수 만들기

6. 변수 사용하기

 

이 글에서는 UProgressBar 위젯을 만들고 변수로 가져와 값을 변경합니다.

 

위젯을 위한 UserWidget C++ 클래스를 만듭니다.

콘텐츠 브라우저에서 위젯 블루프린트를 만들고 부모를 만들어진 클래스로 설정합니다.

부모를 지정하지 못한경우 블루프린트 부모변경을 이용할 수 있습니다.

오른쪽 상단에 부모 클래스를 확인하고 디자이너탭이 보이는지 확인합니다.

C++ 클래스를 우클릭해서 기반 블루프린트를 생성한 경우 디자이너 탭이 보이지 않습니다.

 

프로그래스바를 배치하고 변수 이름의 변경과 변수 여부를 체크해줍니다.

이때 sizeBox는 추가하지 않아도 무방하며 디테일 패널의 퍼센트를 바꿔보고 변경할 값의 상태를 확인합니다.

 

처음에 만든 C++ 클래스로 가서 위젯의 이름과 동일한 변수를 생성하고 변경을 위한 함수를 하나 만들어줍니다.

위젯의 이름과 변수의 이름은 동일해야하며 UPROPERTY(meta=(BindWidget))을 작성하여 위젯과 동기화시킵니다.

변수의 이름이 맞지 않는 경우 찾을 수 없다는 에러 메시지가 출력됩니다.

 

.cpp 파일에서는 프로그래스바의 헤더를 추가해주고 함수 내용을 작성합니다.

해당 위젯 클래스를 가져와 함수를 호출하여 사용해봅니다.

 

 

 

 

 

Unreal 위젯을 작업하다 보면 위젯 클래스 안에 위젯을 넣는 경우가 많습니다.

만들어진 위젯의 하위 위젯으로 여러 UI를 구성할 경우 위젯 내부에 있는 위젯을 호출해야할 경우가 있습니다.

 

이 때 한 위젯에서 내부에있는 위젯의 변수를 사용하려할 때 블루프린트에서는 간단하게 사용될 수 있지만

C++ 클래스의 경우 연속적인 참조와 호출이 일어납니다.

WBP_MainWidget 안에 WBP_HelthPointBar 위젯이 있는 경우입니다.

블루프린트의 경우 아래와 같이 설정할 수 있습니다.

 

C++ 코드의 경우 헤더를 참조해 하위 함수를 호출하는 방법을 사용할 수 있습니다.

 

반응형