protected virtual void UpdateAnimFrame() { switch (m_iDir) { case EAnimDirection._FORWARD: { ++m_iCurrentFrame; if (m_iCurrentFrame == m_aAnimationFrames.Length) { --m_iCurrentFrame; m_iDir = EAnimDirection._BACKWARD; } } break; case EAnimDirection._BACKWARD: { --m_iCurrentFrame; if (m_iCurrentFrame < 0) { m_iCurrentFrame = 0; m_iDir = EAnimDirection._FORWARD; } } break; } m_gcRenderer.sprite = m_aAnimationFrames[m_iCurrentFrame]; m_iTimerHandle = TimerManager.AddTimer(m_fDeltaFPS, UpdateAnimFrame); }
public virtual void Start() { GAssert.Assert(m_aAnimationFrames.Length != 0, "PingPong has no frames!"); m_fDeltaFPS = 1.0f / m_fFPS; m_iTimerHandle = 0; m_iDir = EAnimDirection._FORWARD; m_gcRenderer = GetComponent <SpriteRenderer>(); if (m_bAutoStart) { StartAnimation(); } }