Pink Transparent Star

Shader

[ Shader ] 04.쉐이더를 이용한 애니메이션

채유나 2023. 5. 13. 02:43
728x90
해당 포스팅은 " 따라 하면서 배우는 유니티 5 셰이더와 이펙트 입문 " 기반으로 정리 하였습니다.

 

 

 

[ 텍스처 바꾸기 ]

쉐이더에 등록된 텍스처를 바꾸기 위해선 프로퍼티의 이름을 알아낸 뒤 간단한 코드로 변화를 줄 수 있다.

 

직접 제작하지 않은 쉐이더의 경우 아래와 같이 이름 확인을 할 수 있다.

 

Edit Shader를 통해 Albedo의 프로퍼티 이름이 _MainTex 인것을 확인 한 뒤 코드를 통해 텍스처를 변경할 수 있다.

private void Update()
{
    if(switched)
    {
        GetComponent<Renderer>().material.SetTexture("_MainTex", newAlbedo);
    }
    else
    {
        GetComponent<Renderer>().material.SetTexture("_MainTex", origAlbedo);
    }
}

GetComponent 메서드를 통해 오브젝트의 Renderer()에 접근하여 "_MainTex"를 통해 텍스처를 변경한다.

 

 

[ UV 좌표 ]

 

- 스크롤 애니메이션

 

private void LateUpdate()
{
     uvOffset += (unAnimSpeed * Time.deltaTime);
     GetComponent<Renderer>().material.SetTextureOffset("_MainTex", uvOffset);
}

SetTextureOffset( "이름", 값 )  : 텍스처의 배치 오프셋을 설정

unAnimSpeed와 시간을 곱해 uvOffset 변수의 값을 증가시켜 오프셋 값을 조정한다.

 

 

728x90