diff options
author | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-03-10 14:07:40 +0800 |
commit | 22891bf59032ba88262824255a706d652031384b (patch) | |
tree | 7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs | |
parent | 8b04ea73e540067f83870b61d89db4868fea5e8a (diff) |
* move folder
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs')
-rw-r--r-- | Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs deleted file mode 100644 index f80a8312..00000000 --- a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs +++ /dev/null @@ -1,255 +0,0 @@ -#define ANIM_CROSS_FADE -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class PCAnimation : UnitAnimation -{ - -#if !ANIM_CROSS_FADE - // 切换动画 - public enum ETrigger - { - ToIdle, - ToMove, - ToJump, - ToAttack, - ToAirAttack, - ToLanding, - } -#endif - - public enum ELayer - { - Basic = 0, - Attack, - SwordAttack, - GunAttack, - UpperBody, - LowerBody, - Count, - } - - - // 动作名,和animator里的state对应 - public enum EAnimState - { - // layer 0 - Idle = 0, - Move, - Jump, - Hit, - Attack, - Rise, - Stinger, - Turn, - Landing, - - Attack0, - Attack1, - Attack2, - Attack3,
-
- AttackToAir,
-
- AirAttack0, - AirAttack1, - AirAttack2, - AirAttack3,
- AirAttack4,
-
- AirDash, - - LandingGround, - } - - public override AnimatorLayerInfo baseLayer
- {
- get { return layers[(int)ELayer.Basic]; }
- } - - private UnitActionData m_ActionData; - - public bool applyRootMotion { get; set; } - public bool applyRootCurve { get; set; } // 程序生成的root motion - - public bool updateAnimationAuto { get; private set; } // 自动更新动画 - - private AnimatorOverrideController controller
- {
- get
- {
- Debug.Assert(owner.unitAnimation.animator.runtimeAnimatorController is AnimatorOverrideController);
- return owner.unitAnimation.animator.runtimeAnimatorController as AnimatorOverrideController;
- }
- } - - public override void Initialize() - { - base.Initialize(); - - m_Animator = this.m_Owner.unitObj.GetComponent<Animator>(); - - m_Animator.speed = 0; - - m_LayerInfo = new AnimatorLayerInfo[2]; - m_LayerInfo[0] = new AnimatorLayerInfo(this, m_Animator, (int)ELayer.Basic); - //m_LayerInfo[1] = new AnimatorLayerInfo(this, m_Animator, ELayer.Attack); - - if (m_Animator == null) - { - LogHelper.LogError("没有挂Animator组件"); - } - - applyRootMotion = true; - - updateAnimationAuto = true; - } - - public override void OnUpdate() - { - base.OnUpdate(); - - UpdateLayer(); - UpdateAnimation(); - UpdateRootMotion(); - UpdateRootCurve(); - } - - void UpdateLayer() - { - m_LayerInfo[0].OnUpdate(); - return; - for (int i = 0; i < m_LayerInfo.Length; ++i) - { - m_LayerInfo[i].OnUpdate(); - } - } - - void UpdateAnimation() - { - if(updateAnimationAuto)
- {
- m_Animator.speed = 1;
- m_Animator.Update(Time.deltaTime);
- m_Animator.speed = 0; - }
- } - - void UpdateRootMotion() - { - if (!applyRootMotion) - return; - - m_Owner.unitRootMotion.UpdateRootMotion(); - } - - void UpdateRootCurve() - { - if (!applyRootCurve) - return; - }
-
- AnimationData GetAnimationDataOfState(string name)
- {
- string animName = controller[name].name;
- string path = owner.folder + "AnimationData/" + animName + ".asset";
- AnimationData data = ResourceManager.Instance.LoadAsset<AnimationData>(path);
- return data;
- }
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- public void AnimIdle() - { - CrossFade(EAnimState.Idle, 0.2f, 0); - } - - public void AnimMove() - { - CrossFade(EAnimState.Move, 0.01f, 0); - } - - public void AnimJump() - { - CrossFade(EAnimState.Jump, 0.01f); - } - - public void AnimAirAttack(int id) - { - m_Owner.unitCollider.OnAnimationChange(); - EAnimState state = EAnimState.AirAttack0; - if (id == 1) state = EAnimState.AirAttack1; - else if (id == 2) state = EAnimState.AirAttack2; - else if (id == 3) state = EAnimState.AirAttack3;
- else if (id == 4) state = EAnimState.AirAttack4;
-
- AnimationData data = GetAnimationDataOfState(state.ToString());
- Debug.Assert(data != null);
- float offset = data.GetProperty(EAnimationProperty.ComboTimeOffset, 0);
- float duration = data.GetProperty(EAnimationProperty.TransitionInDuration, 0.1f);
- CrossFade(state, duration, offset); - } - - public void AnimAttackToAir(float offset)
- {
- m_Owner.unitCollider.OnAnimationChange();
- Play(EAnimState.AttackToAir, offset);
- } -
- public void AnimAttack(int id) - { - m_Owner.unitCollider.OnAnimationChange(); - switch (id) - { - case 0: - CrossFade(EAnimState.Attack0, 0.02f); - break; - case 1: - CrossFade(EAnimState.Attack1, 0.02f); - break; - case 2: - CrossFade(EAnimState.Attack2, 0.02f); - break; - case 3: - CrossFade(EAnimState.Attack3, 0.02f); - break; - } - } - - public void AnimAirDash() - { - AnimationData data = GetAnimationDataOfState(EAnimState.AirDash.ToString()); - if (baseLayer.stateInfo.IsName(EAnimState.AirDash.ToString())) - { - float offset = data.GetProperty(EAnimationProperty.ComboTimeOffset, 0); - this.Play(EAnimState.AirDash, offset); - } - else - { - CrossFade(EAnimState.AirDash, 0.02f); - } - } - - public void AnimLanding() - { - CrossFade(EAnimState.Landing, 0.05f); - } - - public void AnimLandingGround() - { - CrossFade(EAnimState.LandingGround, 0.00f); - } - - private void Play(EAnimState animState, float normalizedTime = float.NegativeInfinity, int layerIndex = 0) - { - base.Play(animState.ToString(), layerIndex, normalizedTime); - } - - private void CrossFade(EAnimState animState, float normalizedTransitionDuration, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f, int layerIndex = 0) - { - base.CrossFade(animState.ToString(), normalizedTransitionDuration, layerIndex, normalizedTimeOffset, normalizedTransitionTime); - } - -} |