언리얼에서 제공하는 위젯중 이미지에 텍스쳐를 넣거나 Material을 넣을수있습니다.
이제 이 이미지의 Material에 파라미터에 접근하여 값을 바꾸는 것을 알아봅시다.
간단히 테스트용으로 User Interface 도메인을 가지는 Material을 만들고 인스턴스를 생성해줍시다.
저희가 기본적인 Material의 파라미터에 접근할때 보통 Dyniamic으로 만들어주고 SetScalarParameterValue에서 값을 넣어줍니다.
하지만 Widget에 있는 Image에 Material을 넣어 주기만 해도 자동적으로 Dynamic을 생성해 주나 봅니다.
public:
UPROPERTY(BlueprintReadWrite, VisibleAnywhere, meta = (BindWidget))
class UImage* img;
private:
class UMaterialInstanceDynamic* mat;
mat = img->GetDynamicMaterial();
mat->SetScalarParameterValue("Param", 0);
이런식으로 기존에 UMaterialInstanceDynamic::Create 없이 일반적인 Material_Instance를 넣어주어도 Dynamic이 작동합니다.
위의 파라미터를 Tick에 태워 값을 바꿔 보았습니다.