private IEnumerator Play(SpriteAnimationInfo animInfo, MotionClearCB motionClearCB, params object[] param) { int index = 0; while (animInfo.spriteInfoArray.Length.Equals(index) == false) { if (animSp != null) { animSp.spriteName = animInfo.spriteInfoArray[index].spriteName; animSp.MakePixelPerfect(); if (GameManager.Instance != null && GameManager.Instance.GetGameStatus.isGameStart && SoundManager.Instance != null) { SoundManager.Instance.PlayAudioClip(animInfo.spriteInfoArray[index].soundPath); } } if (animInfo.spriteInfoArray[index].isActive && motionClearCB != null) { motionClearCB(param); } yield return(new WaitForSeconds(animInfo.animSpeed)); index++; if (index.Equals(animInfo.spriteInfoArray.Length) && animInfo.isLoop) { index = 0; } } }
public void PlayAnimation(eAnimationType type, MotionClearCB motionClearCB, params object[] param) { SpriteAnimationInfo animInfo = null; if (GetAnimationInfo(type, out animInfo)) { if (selectType.Equals(type) && animInfo.isLoop) { return; } StopAllCoroutines(); selectType = type; if (animSp.isActiveAndEnabled) { StartCoroutine(Play(animInfo, motionClearCB, param)); } } }