위젯에 애니메이션을 주기 위해선

에디터 상에서 위젯의 애니메이션 작업(키 프레임)을 해줘야 하고

애니메이션 변수를 코드에서 호출하여 사용한다.

 

위젯에서 선언된 애니메이션을 찾는 코드(역시 구글링!)

UProperty* pProperty = GetClass()->PropertyLink;
 
// 클래스 내의 모든 속성에서 위젯 애니메이션을 찾는다.
while (nullptr != pProperty)
{
    // 찾은 속성이 오브젝트 속성 일때
    if (pProperty->GetClass() == UObjectProperty::StaticClass())
    {
        UObjectProperty* pObjProperty = Cast<UObjectProperty>(pProperty);
 
        // 오브젝트 속성이 위젯 애니메이션일때
        if (pObjProperty->PropertyClass == UWidgetAnimation::StaticClass())
        {
            UObject* pObj = pObjProperty->GetObjectPropertyValue_InContainer(this0);
            UWidgetAnimation* pWidgetAnim = Cast<UWidgetAnimation>(pObj);
 
            if (nullptr != pWidgetAnim  && nullptr != pWidgetAnim->MovieScene)
            {
                if (pWidgetAnim->MovieScene->GetFName() == "FadeOut")
                {
                    mpFadeOut = pWidgetAnim; // UWidgetAnimation 변수에 담기
                }
                else if (pWidgetAnim->MovieScene->GetFName() == "FadeIn")
                {
                    mpFadeIn = pWidgetAnim;
                }
            }
        }
    }
    // 다음 속성으로
    pProperty = pProperty->PropertyLinkNext;
}
cs

 

+애니메이션을 선택하여 애니메이션 추가후 디테일 속성값들을 변경하고 키 프레임을 잡는다.

키 프레임은 우측 디테일 창의 속성들 옆에 아이콘을 누르면 된다.

 

 

'::protected > 언리얼4&5' 카테고리의 다른 글

데이터 사용하기.  (0) 2022.06.21
AI  (0) 2020.11.18
위젯(UWidget) 위치 얻기.  (0) 2019.12.20
액터 아웃라인(Outline) 만들기.  (0) 2019.12.18
UUserWidget::Function()  (0) 2019.12.11

+ Recent posts