Example #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;
            }
        }
    }
Example #2
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));
            }
        }
    }