UI

    [Unity] 모바일 해상도 대응

    해상도 (resolution)이미지/영상 등을 표현하는 데 몇 개의 픽셀(pixel)로 이루어졌는지를 폭넓게 나타내는 말해상도와 관련된 내용은 유니티 툴의 Game 창에서 추가하거나 설정할 수 있다.캔버스모든 UI 요소는 Canvas 안에 위치해야 한다. 캔버스는 Canvas 컴포넌트가 있는 게임 오브젝트이며 모든 UI 요소는 반드시 어떤 캔버스의 자식이여야 한다.UI 요소 생성, 예를 들어 GameObject > UI > Image 메뉴를 사용하여 이미지를 생성하면 (씬에 아직 캔버스가 없을 경우)자동으로 캔버스를 생성한다. 이 때 이 UI 요소는 이 캔버스의 자식으로서 생성된다.캔버스 영역은 씬 뷰에서 사각형으로 나타나므로 매번 게임 뷰가 보이게 하지 않고도 UI 요소를 배치하기 용이하다. Canva..

    [Unity] UI 카메라 설정하기 (screen space - camera)

    메인 카메라(main camera)의 culling mask에서 UI를 체크해제하고 depth 속성의 값을 0으로 설정하였다. 씬에 새로운 카메라를 추가한다. 카메라의 clear flags에서 depth only를 선택하고 culling mask에서 UI 레이어를 제외하고 체크해제한다. 캔버스와 하위 ui 요소의 레이어를 설정한다(UI) render mode에서 screen space- camera를 선택하고 render camera에 씬에 추가한 카메라를 참조시킨다. 메인 카메라에서 씬의 게임 오브젝트와 스카이박스를 표시하고 두번째 카메라의 UI는 항상 위에 표시된다. 출처 : 유니티에서 UI 카메라 설정하기(screen sapce - camera) (tistory.com)

    [Unreal] UI(위젯)에서 메인 캐릭터 가져오기

    UUserWidget 클래스 내에 연관된 플레이어 캐릭터를 가져오는 함수가 존재한다. T같은 경우엔 미리 캐스팅해서 반환해준다는 점이 다르다. FLocalPlayerContext 구조체 변수에 의해 가져오게 된다. // 템플릿 함수 캐스팅해서 반환한다 template T* GetOwningPlayerPawn() const { return Cast(GetOwningPlayerPawn()); } // 플레이어 폰을 가져오는 함수 APawn* UUserWidget::GetOwningPlayerPawn() const { if (APlayerController* PC = GetOwningPlayer()) { return PC->GetPawn(); } return nullptr; } // 플레..

    [Unreal] UI를 마우스 위치에 따라가게 하기

    CanvasPanel 밑으로 가있기 때문에 Canvas Panel Slot이 존재한다 여기서 위치를 수정해서 이동시킬 것이다. finalPos 변수는 달라질 수 있음. 마우스의 위치는 현재 뷰포트 기준으로 가져온다 라이브러리 참고, PlayerController에서 주어지는 마우스 위치는 월드 기준이다. FVector2D mousePos = UWidgetLayoutLibrary::GetMousePositionOnViewport(GetWorld()); FVector2D viewportSize = UWidgetLayoutLibrary::GetViewportSize(GetWorld()); FVector2D finalPos{ mousePos.X + 38.5f,mousePos.Y + 0.5f }; if (auto..

    [Unreal] UI를 뷰포트 위치로 치환 및 이동하는 방법 (UI를 마우스의 위치로 또는 반대)

    기본적으로 뷰포트의 크기는 현재 게임 화면이다 그 중 제일 보편적인건 fhd 1920 x 1080이다. UI의 위치를 지정할 수 있는 방법이 두 가지가 존재한다. Slot을 이용하는거다 피벗 기준이고, 여기서 주의해야할 게 대상 UI는 다른 UI의 자식으로 들어가야한다. RenderTransform의 Translation 이용하는 것이다, 하지만 RenderTransform은 할당만 가능하지 따로 가져올 방법이 존재하지가 않는다. 주의해야할건 바로 아래의 경우다, Slot이 없을 경우 널 포인터다. 아래는 UI의 위치 > 뷰포트 위치 또는 뷰포트 위치 > UI의 위치로 치환할 수 있는 함수들인데 여기서 UObject*는 GetWorld()로 보내주고 FGeometry&는 현재 UI의 위치에 대한 정보를 ..

    [Unity] 메인&UI 카메라 2개 동시에 설정

    카메라를 설정하기 위해선 UI 카메라가 메인 카메라보다 앞으로 와야한다. 3D로 카메라 전환 후 비교. 캔버스를 카메라 모드로 전환한 후 UI 카메라를 붙여야한다. 하지만, 문제점이 발생 할 수가 있다 예로 들어서 메인 카메라에서 오브젝트를 렌더링 할 시 UI와 같이 표현하고자 할텐데 UI 카메라가 비추는 깊이와 사물 (오브젝트) 를 제한둬야한다, UI 카메라를 오직 UI만 그리고 깊이 0으로 설정하고 메인 카메라를 -1로 설정한다. (수가 작을 수록 뒤로 감)