2023/01 4

[UE5] 언리얼 프로퍼티 시스템 ?

UPROPERTY(), UCLASS() ,USTRUCT() ,UENUM() ,UFUNCTION() 언리얼 C++ 작업을 하면서 많이 봤던 UCLASS, UPROPERTY. 사실 UPROPERTY를 사용해서 지정자를 넣어주면 블루프린트에서 사용할 수 있다. 라고만 생각해왔던 때가 있었다. 처음 언리얼을 접했을 때 튜토리얼 따라하기, 구글링으로 찾아서 방법 따라하기 등을 많이 했었기에 그냥 그런가보다 하고 생각했다. 하지만 이제는 제대로 알고 써야할 때가 온 것 같아 조금씩 찾아보며 공부하고 있다. 언리얼 프로퍼티 시스템, 언리얼 리플렉션, 리플렉션 시스템 등으로 많은 정보를 찾을 수 있었다. 언리얼에서 말하는 프로퍼티 시스템이 뭘까? 공식 문서를 찾아서 봤을 때, 사실 번역이 이상한건지 말이 어려운건지 1..

[UE5] UScrollBox에 버튼이 들어있는 위젯 스크롤이 안될 때

UMG를 만들어서 확인하는데 ScrollBox 혹은 UListview와 같은 스크롤 기능이 있는 위젯에서 갑자기 스크롤이 되지 않는 경우가 생겼다. 마우스 휠을 움직이면 스크롤이 되는데 마우스 클릭후에 움직이려니 간헐적으로는 스크롤이 되는데, 계속 스크롤이 되지 않는 현상이 발생해서 원인을 찾아봤다. 원인은 버튼이 클릭되었음을 인지 하기 위한 이벤트 처리와, 스크롤박스의 스크롤이 되기 위한 조건 응답이 충돌하기 때문이었다. Button detail에 Advanced라는 카테고리에서 Click Method, Touch Method 세팅을 알맞는 방법으로 바꾸었더니 해결됐다. 자세한 내용은 아래에.. 내가 만들고 있는 위젯은 상품의 종류를 나열해 보여줄 수 있는 리스트다. 아직 리소스도, UI 구성도 없지만..

UnrealEngine/UMG 2023.01.26

[UE5] UMG 위젯 Visibility 종류와 차이점

위젯에는 Visibility 설정을 하는 곳이 있다. 위젯 하나를 클릭해서 디테일 패널을 내리다보면 Behavior 라는 카테고리 아래에 Visibility가 있을 것이다. 이름 그대로 이 위젯을 어떤 방식으로 보여주는 것인지 설정하는 곳이다. 크게는 보이는 것, 보이지 않는 것 으로 나눌 수 있지만 각 타입마다 기능이 다르다. 이걸 그냥 설명만 봤을 때는 그렇구나 하고 넘어갔는데 설정에 따라서 간혹 버그가 일어나는 경우도 있었다. 그래서 사용법과 그 예시를 조금씩 같이 적어놓으려고 한다. 참고로 코드에서는 SetVisibility라는 함수를 통해 타입을 설정할 수 있다. ESlateVisibility라는 enum타입으로 정의한다. Visibility 기능과 차이점 언리얼 코드에서 SlateWrapper..

UnrealEngine/UMG 2023.01.15

[UE5] Shop UMG - C++ 코드 연동하기

이전 글에서 만들었던 UMG를 이제 작동하도록 만들려고 한다. 블루프린트를 일부 사용하고, 데이터 저장과 로직이 들어가야 하는 부분은 C++ 을 사용해서 작업할 예정이다. 오늘은 이 큰 Shop을 하기전에 커스텀해서 만들었던 Tab을 먼저 작업하려고 한다. Tab 의 UMG 하이어라키는 이렇게 구현되어있다. 이 Tab UMG가 할 역할은 다음과 같다. 1. Shop에서 각 탭마다 부여받는 이름과 번호가 존재한다. 2. 클릭된 Tab에 따라 다른 아이템을 보여줄 수 있도록 Clicked 된 탭이 몇 번인지 Shop UMG에 알려준다. 3. 클릭된 Tab은 On , 클릭되지 않은 Tab은 Off 상태를 유지할 것이다. 그래서 이 Tab은 데이터가 들어오면 어떤 이름을 세팅하고 현재 부여받은 내 번호가 몇 번..

UnrealEngine/UMG 2023.01.08