회사 TIL

[Unreal] Widget과 Widget Component

imagineer_jinny 2024. 6. 20. 00: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번은 새로운 위젯을 생성하여 동적으로 추가할 때 유용합니다.
  • 선택은 주어진 상황과 요구 사항에 따라 다릅니다. 성능, 메모리 사용, 초기 설정 등 다양한 요소를 고려하여 적절한 방법을 선택해야 합니다.