// float CheckValue (float value, float x, float y) // { // float min; // float max; // if (x > y) { // min = y; // max = x; // } else { // min = x; // max = y; // } // value = Mathf.Clamp (value, min, max); // return value; // } #endregion #region Character void PlayCharacterAnimation(CCAnimationData animData) { if (animData != m_CurRole.Animation.CurrAnimData) { m_CurRole.Animation.Play(animData); } }
void Update() { if (CCInput.GetKeyDown(KeyCode.P) && TestAnimation != "") { CCAnimationData data = new CCAnimationData(TestAnimation); Play(data); } }
public IEnumerator StartPlay(CCAnimationData pAnimData) { if (pAnimData == null) { yield break; } Stop(); m_PlayAnimationList.Clear(); m_Coroutine = StartCoroutine(CoroutinePlay(pAnimData)); yield return(m_Coroutine); }
public CCAnimationData Clone() { var CCAnimationData = new CCAnimationData(); CCAnimationData.AnimName = this.AnimName; CCAnimationData.Audio = this.Audio; CCAnimationData.mWrapMode = this.mWrapMode; CCAnimationData.normalizedTime = this.normalizedTime; CCAnimationData.AssetsPath = this.AssetsPath; CCAnimationData.Key = this.Key; return(CCAnimationData); }
public float GetAnimatinClipLength(CCAnimationData pAnimData) { AnimationClip animClip = GetAnimationClip(pAnimData.AnimName); if (animClip == null) { return(0); } float animLength = animClip.length * (1 - pAnimData.normalizedTime) / animator.speed; return(animLength); }
public void Play(CCAnimationData pAnimData) { if (gameObject.activeInHierarchy == false) { return; } if (pAnimData == null) { return; } Stop(); m_Coroutine = StartCoroutine(CoroutinePlay(pAnimData)); m_PlayAnimationList.Clear(); }
public void SwitchAnimation() { if (gameObject.activeInHierarchy == false) { return; } if (m_AniData == null) { return; } CCAnimationData pAnimData = m_AniData.GetNextAnimData(); if (pAnimData != null) { Play(pAnimData); } }
public void PlayList(List <CCAnimationData> list) { if (list == null || list.Count == 0) { return; } m_PlayAnimationList = list; CCAnimationData pAnimData = list[0]; if (pAnimData == null) { m_PlayAnimationList.Clear(); return; } Stop(); m_Coroutine = StartCoroutine(CoroutinePlay(pAnimData)); m_PlayAnimationList.RemoveAt(0); }
public void AddOverrideClip(CCAnimationData pAnimData) { string tAnimPath = pAnimData.AssetsPath; string tAnimClipName = pAnimData.AnimName; if (tAnimPath.IsNullOrEmpty() || tAnimClipName.IsNullOrEmpty()) { return; } var mAnimationClips = Resources.LoadAll <AnimationClip> (tAnimPath); if (mAnimationClips.Length <= 0) { return; } AnimationClip targetClip = null; bool tOverrideClip = false; mAnimationClips.ForEach(item => { if (item.name == tAnimClipName) { (m_AnimatorControl as AnimatorOverrideController)[stanceAnimStateName] = item; targetClip = item; tOverrideClip = true; } }); if (tOverrideClip) { Resources.UnloadUnusedAssets(); m_ClipDict = new Dictionary <string, AnimationClip>(); foreach (var clip in m_AnimatorControl.animationClips) { m_ClipDict.Add(clip.name, clip); } } }
/// <summary> /// dynamic loading animClip /// </summary> /// <param name="pAnimData"></param> /// <param name="clip"></param> /// <returns></returns> bool OverrideAnimatorControllerClip(CCAnimationData pAnimData, ref AnimationClip clip) { string tAnimPath = pAnimData.AssetsPath; string tAnimClipName = pAnimData.AnimName; if (tAnimPath.IsNullOrEmpty() || tAnimClipName.IsNullOrEmpty()) { return(false); } var mAnimationClips = Resources.LoadAll <AnimationClip> (tAnimPath); if (mAnimationClips.Length <= 0) { return(false); } AnimationClip targetClip = null; bool tOverrideClip = false; mAnimationClips.ForEach(item => { if (item.name == tAnimClipName) { (m_AnimatorControl as AnimatorOverrideController)[stanceAnimStateName] = item; targetClip = item; tOverrideClip = true; } }); clip = targetClip; if (!tOverrideClip) { return(false); } Resources.UnloadUnusedAssets(); return(true); }
/// <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); } }
public void Play(string aniName) { CCAnimationData data = new CCAnimationData(aniName); Play(data); }
public void SetStanbyData(CCAnimationData _StandBy) { Basic_StandBy = _StandBy; }