기록

240426~240503 파트너 캐릭터 위치를 나타내는 UI (1)

hayo_su 2024. 5. 4. 15:31

목표 : 다른 캐릭터(파트너)위치를 나타내는 UI를 만들기 

  1. 위젯 만들기 (진행 중)
  2. 플레이어에 위젯 컴포넌트로 붙이기 (진행 중)
  3. 거리에 따라 위젯 on/off기능 (진행 중)
  4. 화면 랜더링 여부에 따라 on/off기능 + 랜더링이 되지 않을 때 화면에서 방향을 가르키도록 하기

1,2,3번은 전에 진행하였던 상호작용 UI를 참고하여 빠르게 만들 수 있었다.

 

240415~240416 상호작용 UI 만들기(1)

목표 : 상호작용을 알려주는 UI를 거리에 따라 다른 UI가 되도록 만드는 것 위젯 만들기 씬 컴포넌트 위젯 붙이기 거리에 따라 어떤 UI를 띄울지 결정하기 위젯의 Color를 바인딩하여 어떤 캐릭터(ta

hayo-su.tistory.com

 

 

 

 

1. 위젯 블루프린트 생성하기

 

 

2. 컬러 및 오파시티를 바인드 시켜 플레이어 타입에 따라 어떤 색상으로 보여줄 지 결정할 수 있도록 하였다.

 

 

if (PlayerMarkerWidget)
{
	// UI의 소유(캡슐)의 소유(캐릭터)로 컨트롤러를 얻는다
    APlayerController* OwningPlayerController = Cast<APlayerController>(GetOwner()->GetOwner());

    // Get the player controller of the controlling player
    APlayerController* PlayerController = GetWorld()->GetFirstPlayerController();
    if (PlayerController != nullptr && OwningPlayerController != nullptr)
    {
        // Check if the owner of the widget component is the same as the player controller
        if (OwningPlayerController == PlayerController)
        {
            // Hide the widget if the owner is the same as the player controller
            SetVisibility(false, true);
            bIsOwner = true; // tick에 들어가면 바로 return하기 위한 bool값이다.
        }
    }

}

 

3. 본인이 아닌 파트너의 UI가 표시가 필요하기 때문에 본인의 UI를 보이지 않게 처리하였다.

 

 

4. 결과 다른 플레이어(파트너)의 위치를 알려주는 UI를 띄웠다.