summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-03-10 14:07:40 +0800
committerchai <chaifix@163.com>2022-03-10 14:07:40 +0800
commit22891bf59032ba88262824255a706d652031384b (patch)
tree7595439ba9966c9402d37e37cee5e8cf098757d5 /Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs
parent8b04ea73e540067f83870b61d89db4868fea5e8a (diff)
* move folder
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs')
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs255
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);
- }
-
-}