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 bool PlayAnimation(eAnimationStateName name) { if (_sprAniInfo.ContainsKey(name)) { _playAniInfo = _sprAniInfo[name]; _delaySec = new WaitForSeconds(_playAniInfo.NextSprChangePerSec); _frameCount = 0; StopAllCoroutines(); StartCoroutine(AnimationPlay()); return(true); } return(false); }
public float GetAnimTime(eAnimationType type) { SpriteAnimationInfo animInfo = null; if (GetAnimationInfo(type, out animInfo)) { float time = (float)animInfo.spriteInfoArray.Length * (animInfo.animSpeed); return(time); } return(0); }
private bool GetAnimationInfo(eAnimationType type, out SpriteAnimationInfo animInfo) { animInfo = null; for (int i = 0; i < spriteAnimInfoArray.Length; i++) { if (spriteAnimInfoArray[i].animType.Equals(type)) { animInfo = spriteAnimInfoArray[i]; break; } } return(animInfo != null); }
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)); } } }
public void StopAnimation() { _playAniInfo = null; _frameCount = 0; }