전체 글 14

[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

[UE5] Shop UMG 프로토타입 제작하기

지금 Sprite로 쓸만한 에셋이 없어서 엔진의 기본 세팅을 가지고 임의로 만들었다. 예쁘게 만드는 건 아트팀에서 예쁘게 해줄 것이다. 계층구조는 이렇게 했다. 이제 하나씩 뜯어보면서 코드로 연결을 해볼 예정이다. 이렇게 UI가 만들어져서 나오면 이대로 바로 연결하지 않고 기획적인 부분을 확인해보고 필요에 의해 수정되는 경우가 있다. 예를 들어서 아이템이 20개가 될지 10개가 될지 2개가 될지 모르는 상황이지만 어떤 데이터가 들어와도 우리는 유연하게 대처할 수 있는 코드를 짜야한다. 그러기 위해서는 2개 였을 때는 스크롤박스가 필요없지만 10개가 넘어가면 스크롤 박스가 필요할지도 모른다는 생각을 우선 캐치해내야한다. 나는 계층구조를 각각의 역할이 필요한 순서대로 엮었다. 첫 번째는 가장 상단의 재화 표..

UnrealEngine/UMG 2022.12.27