Unity3D/NGUI

UITexture UV Animation

blueasa 2024. 9. 5. 13:03

Unity 2021.3.43f1

NGUI 2023.08.01

----

 

NGUI에서 UV Animation을 하기 위해 UV를 제어 할 수 있는 UITexture를 활용한 애니메이션 스크립트

 

using UnityEngine;
using System.Collections;


public class UITexture_UVAnimation : MonoBehaviour
{
    [SerializeField] private UITexture m_textureTarget = null;
    [SerializeField] private Vector2 m_v2AnimationRate = new Vector2(1f, 0f);
    private Coroutine m_coUVAnimation = null;
    private Rect m_rect;
    private float m_fDeltaTime = 0f;


    void OnEnable()
    {
        if (null == m_textureTarget)
        {
            m_textureTarget = GetComponent<UITexture>();
        }

        RunUVAnimation();
    }

    void OnDisable()
    {
        StopAllCoroutines();
    }

    void RunUVAnimation()
    {
        if (null != m_textureTarget)
        {
            if (null != m_coUVAnimation)
            {
                StopCoroutine(m_coUVAnimation);
                m_coUVAnimation = null;
            }

            m_coUVAnimation = StartCoroutine("CoUpdateUVAnimation");
        }
    }

    IEnumerator CoUpdateUVAnimation()
    {
        while (true)
        {
            m_rect = m_textureTarget.uvRect;
            m_fDeltaTime = Time.deltaTime;
            if (0f != m_v2AnimationRate.x)
            {
                m_rect.x += m_v2AnimationRate.x * m_fDeltaTime;
            }

            if (0 != m_v2AnimationRate.y)
            {
                m_rect.y += m_v2AnimationRate.y * m_fDeltaTime;
            }

            m_textureTarget.uvRect = m_rect;

            yield return null;
        }
    }
}

 

 

[참조] https://www.tasharen.com/forum/index.php?topic=8232.0

 

Scrolling UV Animation

OK, thank you for the support, It was the script writing part that i needed to avoid << smelly artist doesn't understand the use of public and private stuff... I'll have to get help after the weekend then. Thanks anyway

www.tasharen.com

 

반응형