Exemple #1
0
    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);
 }
Exemple #3
0
    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);
    }
Exemple #4
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);
    }
Exemple #5
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));
            }
        }
    }
 public void StopAnimation()
 {
     _playAniInfo = null;
     _frameCount  = 0;
 }