애니메이션 - MRTK3

Graphics Tools Standard 셰이더의 대부분의 속성은 Unity의 기본 제공 애니메이션 시스템을 사용하여 애니메이션 효과를 적용할 수 있습니다. Unity UI 구성 요소에서 사용되는 재질은 기본적으로 Unity의 애니메이션 시스템에 재질 속성을 노출하지 않습니다(재질 속성 블록을 지원하지 않음). Graphics Tools에는 Unity UI 재질 속성의 애니메이션을 지원하는 시스템이 포함되어 있습니다.

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs 스크립트는 Graphics Tools/Standard Canvas 셰이더에서 사용할 수 있는 모든 재질 속성을 노출합니다. CanvasRenderer를 사용하여 UnityUI 게임 개체에 이 구성 요소를 추가하면 Unity의 애니메이션 시스템에 재질 속성이 노출되고, 애니메이션이 적용되면 올바른 재질이 자동으로 업데이트됩니다.

참고

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.csGraphics Tools/Standard Canvas 셰이더에서만 작동합니다. 다른 셰이더의 경우 해당 애니메이션 스크립트를 사용합니다. 예를 들어 Graphics Tools/Canvas/Backplate 셰이더의 경우 CanvasMaterialAnimatorCanvasBackplate.cs입니다.

프로그래밍 방식 사용

일반적으로 캔버스 재질 애니메이터는 Unity의 애니메이션 시스템으로 구동되지만 프로그래밍 방식으로 이 클래스를 사용할 수 있습니다. 클래스의 멤버를 변경한 후 ApplyToMaterial 메서드를 호출해야 합니다. 꼭짓점 돌출 크기를 펄스하는 예는 다음과 같습니다.

using UnityEngine;

public class ScriptedMaterialAnimation : MonoBehaviour
{
    public CanvasMaterialAnimatorGraphicsToolsStandardCanvas Animator;

    private void Update()
    {
        Animator._VertexExtrusionValue = Mathf.Lerp(0, 0.002f, (Mathf.Sin(Mathf.Repeat(Time.time, Mathf.PI * 2.0f)) + 1.0f) * 0.5f);
        Animator.ApplyToMaterial();
    }
}

고급 사용

CanvasMaterialAnimatorGraphicsToolsStandardCanvas.cs의 콘텐츠를 검사하는 경우 Graphics Tools/Standard Canvas 셰이더와 동기화할 수 없는 상용구 코드가 있습니다. 다행히 이 코드는 프로젝트 창에서 셰이더를 마우스 오른쪽 단추로 클릭하고 Graphics Tools > Generate Canvas Material Animator를 선택하면 자동으로 생성됩니다.

프로젝트에 애니메이션 효과를 주는 데 필요한 셰이더에 대한 캔버스 재질 애니메이터를 생성할 수 있습니다. 재질 속성은 편집 및 실행 시 업데이트됩니다.

참고

기본적으로 캔버스 재질 애니메이터는 렌더러의 공유 재질에서 작동합니다. 애니메이션이 단일 재질에만 영향을 주도록 하려면 캔버스 재질 애니메이터의 검사기에서 Instance Materials 속성을 선택할 수 있습니다. 그러면 모든 인스턴스에 대해 새 재질이 할당됩니다.

또한 편집기에서 런타임에 공유 재질에 애니메이션을 적용하면 디스크에 재질 업데이트가 직렬화될 수 있습니다. 이를 방지하기 위해 Graphics Tools는 MaterialRestorer.cs 패턴을 사용합니다.

참고 항목