private void AniTimeUpdate() { if (m_AniTotalTime > 0) { m_AnimElemTime += 1; //int prevUsedTime = this.CurAniUsedTime; if (m_AniUsedTime >= 0) { m_AniUsedTime += _cImageAnimationScale; } //m_AniUsedTime += AppConfig.GetInstance().DeltaTime; else { m_AniUsedTime = 0; } //int curTUsedTime = this.CurAniUsedTime; if (m_AniUsedTime >= 0) { CacheAnimation.SendMessage("OnImageAniTimeUpdate", this, SendMessageOptions.DontRequireReceiver); if (ChekAnimCntOne() && m_AniUsedTime >= m_AniTotalTime) { DoEndFrame(); m_AniTotalTime = -1; } } } }
public async Task PlayActionAnimation_LegacyAnimation(int actionId, AnimActionType animActionType, float playSpeedMultiplier) { // If animator is not null, play the action animation ActionAnimation actionAnimation; AnimationClip clip; float triggerDuration; float extraDuration; AudioClip audioClip; if (GameInstance.ActionAnimations.TryGetValue(actionId, out actionAnimation) && actionAnimation.GetData(this, out clip, out triggerDuration, out extraDuration, out audioClip)) { if (CacheAnimation.GetClip(LEGACY_CLIP_ACTION) != null) { CacheAnimation.RemoveClip(LEGACY_CLIP_ACTION); } CacheAnimation.AddClip(clip, LEGACY_CLIP_ACTION); if (audioClip != null) { AudioSource.PlayClipAtPoint(audioClip, CacheTransform.position, AudioManager.Singleton == null ? 1f : AudioManager.Singleton.sfxVolumeSetting.Level); } CrossFadeLegacyAnimation(LEGACY_CLIP_ACTION, legacyAnimationData.actionClipFadeLength); // Waits by current transition + clip duration before end animation int waitDelay = (int)(1000 * (clip.length / playSpeedMultiplier)); await Task.Delay(waitDelay); CrossFadeLegacyAnimation(legacyAnimationData.idleClip, legacyAnimationData.idleClipFadeLength); // Waits by current transition + extra duration before end playing animation state waitDelay = (int)(1000 * (extraDuration / playSpeedMultiplier)); await Task.Delay(waitDelay); } }
private void CrossFadeLegacyAnimation(string clipName, float fadeLength) { if (!CacheAnimation.IsPlaying(clipName)) { CacheAnimation.CrossFade(clipName, fadeLength); } }
private void UpdateAnimation_LegacyAnimation(bool isDead, Vector3 moveVelocity, float playMoveSpeedMultiplier) { if (isDead) { CrossFadeLegacyAnimation(legacyAnimationData.deadClip, legacyAnimationData.deadClipFadeLength); } else { if (CacheAnimation.IsPlaying(LEGACY_CLIP_ACTION)) { return; } var ySpeed = moveVelocity.y; if (ySpeed > legacyAnimationData.ySpeedToPlayJumpClip) { CrossFadeLegacyAnimation(legacyAnimationData.jumpClip, legacyAnimationData.jumpClipFadeLength); } else if (ySpeed < legacyAnimationData.ySpeedToPlayFallClip) { CrossFadeLegacyAnimation(legacyAnimationData.fallClip, legacyAnimationData.fallClipFadeLength); } else { var moveMagnitude = new Vector3(moveVelocity.x, 0, moveVelocity.z).magnitude; if (moveMagnitude > legacyAnimationData.magnitudeToPlayMoveClip) { CrossFadeLegacyAnimation(legacyAnimationData.moveClip, legacyAnimationData.moveClipFadeLength); } else if (moveMagnitude < legacyAnimationData.magnitudeToPlayMoveClip) { CrossFadeLegacyAnimation(legacyAnimationData.idleClip, legacyAnimationData.idleClipFadeLength); } } } }
public void Stop() { if (m_FrameList == null || m_FrameList.Count <= 0) { return; } CacheAnimation.Stop(); }
public bool PlayerPlayerAni(PlayerState state, int startFrame, int endFrame, bool isLoop = true) { SetLimitFrame(startFrame, endFrame, false); if (m_State == state) { if (CacheAnimation.enabled && !CacheAnimation.isPlaying) { CacheAnimation.Play(); } return(true); } ResetAnimation(); if (!SetStateFrameList(state)) { return(false); } bool ret = DoInitAnimation(); if (ret) { m_IsLoop = isLoop; m_PrevState = m_State; m_State = state; CacheAnimation.Stop(); if (isLoop) { CacheAnimation.wrapMode = WrapMode.Loop; } else { CacheAnimation.wrapMode = WrapMode.Once; } CacheAnimation.Play(); } else { m_IsLoop = isLoop; m_PrevState = m_State; m_State = state; DoEndFrame(); } return(ret); }
public virtual void PlayAnim(AnimationState animState, float BlendTime, bool bForceRender) { mCachedAnimationState = animState; AnimSpeed = animState.speed; float fadeLength = BlendTime * 0.001f; if (fadeLength == 0) { CacheAnimation.Play(animState.name); } else { CacheAnimation.CrossFade(animState.name, fadeLength); } ChangeForceSkinAnimation(bForceRender); }
public bool PlayerPlayerAni(PlayerState state, int startFrame, int endFrame, bool isLoop = true) { SetLimitFrame(startFrame, endFrame, false); if (m_State == state) { if (CacheAnimation.enabled && !CacheAnimation.isPlaying) { CacheAnimation.Play(); } return(true); } ResetAnimation(); PlayerDisplay displayer = this.CacheDisplayer; if (displayer == null) { return(false); } var loaderPlayer = displayer.LoaderPlayer; if (loaderPlayer == null) { return(false); } var imgRes = loaderPlayer.ImageRes; if (imgRes == null) { return(false); } var imgLib = imgRes.ImgLib; if (imgLib == null) { imgRes.Init(); imgLib = imgRes.ImgLib; if (imgLib == null) { return(false); } } m_FrameList = imgLib.GetAnimationNodeList(state); bool ret = DoInitAnimation(); if (ret) { m_IsLoop = isLoop; m_State = state; CacheAnimation.Stop(); if (isLoop) { CacheAnimation.wrapMode = WrapMode.Loop; } else { CacheAnimation.wrapMode = WrapMode.Once; } CacheAnimation.Play(); } else { m_IsLoop = isLoop; m_State = state; DoEndFrame(); } return(ret); }