public void StopSound() { CocoAudio.StopOnTarget(gameObject); }
/// <summary> /// Modify support AnimationOverrideController dynamic loading animClip; /// </summary> /// <param name="pAnimData"></param> /// <returns></returns> IEnumerator CoroutinePlay(CCAnimationData pAnimData) { m_CurrAnimData = pAnimData; AnimationClip animClip = GetAnimationClip(pAnimData.AnimName); string animName = pAnimData.AnimName; if (animClip == null) { if (m_AnimatorControl is AnimatorOverrideController) { if (OverrideAnimatorControllerClip(pAnimData, ref animClip)) { animName = stanceAnimStateName; } else { yield break; } } else { Debug.LogError("Animation lost : " + animName); yield break; } } _CurPlayingClip = animClip; if (m_OnPlayAnimation != null) { m_OnPlayAnimation(pAnimData); } if (m_CrossEnable) { animator.CrossFade(animName, 0.1f, 0, pAnimData.normalizedTime); } else { animator.Play(animName, 0, pAnimData.normalizedTime); } #if UNITY_EDITOR if (m_LogEnable) { Debug.Log(Time.time + " - pAnimData : " + animName); } #endif if (m_SoundEnable) { CocoAudio.StopOnTarget(gameObject); CocoAudio.PlayOnTarget(gameObject, pAnimData.Audio); } float animLength = animClip.length * (1 - pAnimData.normalizedTime) / animator.speed; switch (pAnimData.mWrapMode) { case WrapMode.Loop: while (true) { yield return(new WaitForSeconds(animLength)); if (m_SoundEnable) { CocoAudio.PlayOnTarget(gameObject, pAnimData.Audio); } } break; case WrapMode.ClampForever: yield return(new WaitForSeconds(animLength)); while (true) { yield return(new WaitForEndOfFrame()); } break; default: // Clamp yield return(new WaitForSeconds(animLength)); break; } m_CurrAnimData = null; if (m_PlayAnimationList != null && m_PlayAnimationList.Count > 0) { PlayList(m_PlayAnimationList); } else if (m_AutoSwitchEanble) { SwitchAnimation(); } if (m_OnFinishAnimation != null) { m_OnFinishAnimation(pAnimData); } }