본문 바로가기
회사 TIL

[Unreal] Widget과 Widget Component

by imagineer_jinny 2024. 6. 20.

 

Widget은 Transform이 없다! 

그래서 Transform이 있는 Widget Component를 써준다. 

 

 

위의 방식은 위젯 컴포넌트에서 이미 생성된 위젯을 가져오는 방식

Cast To 노드를 사용하여 위젯의 타입을 특정 위젯 블루프린트 클래스 (WBP_KISS2024_FinishStepHUD)로 캐스팅

캐스팅이 성공하면, 해당 위젯을 변수에 저장하여 이후에 사용할 수 있도록 합니다.

 

사용 시점:

  • 위젯 컴포넌트가 이미 UI에 추가된 경우.
  • 기존 위젯을 참조하여 동작을 변경하거나 값을 업데이트하고 싶을 때.

 

* Casting을 왜 해?

 

캐스팅(Casting)은 객체의 타입을 변환하여 특정 타입에서만 접근 가능한 속성이나 메서드를 사용할 수 있게 하는 작업입니다. Unreal Engine에서는 특히 블루프린트에서 타입 안전성을 유지하고, 특정 타입의 객체에서만 제공하는 기능을 사용하기 위해 캐스팅을 자주 사용합니다.

 

캐스팅의 목적

  1. 타입 확인 및 변환:
    • 객체가 특정 클래스나 인터페이스를 상속받았는지 확인하고, 해당 타입으로 변환합니다.
    • 예를 들어, 일반적인 Widget 타입의 객체를 특정 위젯 블루프린트 클래스로 변환하여 해당 클래스에서만 사용할 수 있는 기능을 사용할 수 있게 합니다.
  2. 안전한 함수 호출:
    • 캐스팅을 통해 타입이 확인된 후, 해당 타입의 객체에서만 사용할 수 있는 함수나 속성을 안전하게 호출할 수 있습니다.
    • 예를 들어, WBP_KISS2024_FinishStepHUD 클래스에서만 존재하는 함수를 호출하고자 할 때 사용합니다.

 

 

 

위의 방법은 새 위젯 블루프린트를 생성하여 이를 화면에 추가하는 방식

 

사용 시점:

  • 새로운 UI 요소를 동적으로 생성하여 화면에 추가하고 싶을 때.
  • 특정 조건이나 이벤트에 따라 새로운 위젯을 생성할 때.

 

구체적인 차이점

  1. 이미 생성된 위젯 사용 (1번)
    • 장점:
      • 메모리 효율적 사용: 이미 생성된 위젯을 재사용하여 메모리 사용을 줄일 수 있습니다.
      • 설정된 초기 상태 유지: 위젯의 초기 상태나 설정을 그대로 유지할 수 있습니다.
    • 단점:
      • 초기 설정된 상태로 인해 변경이 제한될 수 있습니다.
      • 모든 상태가 초기화되지 않을 수 있습니다.
  2. 새 위젯 생성 (2번)
    • 장점:
      • 완전히 새로운 상태로 위젯을 생성할 수 있습니다.
      • 조건에 따라 동적으로 생성할 수 있어 유연성이 높습니다.
    • 단점:
      • 메모리 사용이 증가할 수 있습니다.
      • 초기 설정을 매번 새로 설정해야 할 수 있습니다.

결론

  • 1번은 이미 존재하는 위젯을 재사용할 때 유용하며, 2번은 새로운 위젯을 생성하여 동적으로 추가할 때 유용합니다.
  • 선택은 주어진 상황과 요구 사항에 따라 다릅니다. 성능, 메모리 사용, 초기 설정 등 다양한 요소를 고려하여 적절한 방법을 선택해야 합니다.

댓글