From 7163529a1c092e766e26b7d7b7f7b4b71583962b Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 9 Sep 2021 00:58:59 +0800 Subject: *misc --- Assets/Scripts/Unit/AnimationData.cs | 5 ++-- .../Unit/Components/UnitAnimation/PCAnimation.cs | 31 ++++++++++++++++++---- .../Scripts/Unit/Components/UnitState/PCState.cs | 12 ++++----- Assets/Scripts/Unit/Events/EventEffect.cs | 2 +- Assets/Scripts/Unit/UnitRootMotion.cs | 3 ++- 5 files changed, 38 insertions(+), 15 deletions(-) (limited to 'Assets/Scripts/Unit') diff --git a/Assets/Scripts/Unit/AnimationData.cs b/Assets/Scripts/Unit/AnimationData.cs index 2250da76..84b75f47 100644 --- a/Assets/Scripts/Unit/AnimationData.cs +++ b/Assets/Scripts/Unit/AnimationData.cs @@ -79,6 +79,7 @@ public class ParameterDictionary : SerializableDictionary(path); + return data; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + + public void AnimIdle() { CrossFade(EAnimState.Idle, 0.2f, 0); } @@ -164,7 +183,9 @@ public class PCAnimation : UnitAnimation else if (id == 2) state = EAnimState.AirAttack2; else if (id == 3) state = EAnimState.AirAttack3; - CrossFade(state, 0.05f); + AnimationData data = GetAnimationDataOfGivenState(state.ToString()); + Debug.Assert(data != null); + CrossFade(state, 0.02f, data.GetProperty(EAnimationProperty.ComboTimeOffset, defaultValue: 0)); } public void AnimAttackToAir(float offset) @@ -221,7 +242,7 @@ public class PCAnimation : UnitAnimation base.Play(animState.ToString(), layerIndex, normalizedTime); } - private void CrossFade(EAnimState animState, float normalizedTransitionDuration, int layerIndex = 0, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f) + 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); } diff --git a/Assets/Scripts/Unit/Components/UnitState/PCState.cs b/Assets/Scripts/Unit/Components/UnitState/PCState.cs index c8937895..1d0332cd 100644 --- a/Assets/Scripts/Unit/Components/UnitState/PCState.cs +++ b/Assets/Scripts/Unit/Components/UnitState/PCState.cs @@ -298,15 +298,15 @@ public class PCState : UnitState } } - void OnAttackToAirExit() - { - } + void OnAttackToAirExit(EUnitState next) + { + } - #endregion + #endregion - #region AirAttack + #region AirAttack - IEnumerator AirAttack(SkillParam param) + IEnumerator AirAttack(SkillParam param) { int id = 0; m_Owner.pcAnimation.AnimAirAttack(id); diff --git a/Assets/Scripts/Unit/Events/EventEffect.cs b/Assets/Scripts/Unit/Events/EventEffect.cs index d6a3fa16..9798ed6a 100644 --- a/Assets/Scripts/Unit/Events/EventEffect.cs +++ b/Assets/Scripts/Unit/Events/EventEffect.cs @@ -21,5 +21,5 @@ public class EventEffect : AnimationEventBase public Vector3 rotation; [Tooltip("Scale")] - public Vector3 scale; + public Vector3 scale = Vector3.one; } diff --git a/Assets/Scripts/Unit/UnitRootMotion.cs b/Assets/Scripts/Unit/UnitRootMotion.cs index caf59d7c..86e44abd 100644 --- a/Assets/Scripts/Unit/UnitRootMotion.cs +++ b/Assets/Scripts/Unit/UnitRootMotion.cs @@ -104,7 +104,8 @@ public class UnitRootMotion : UnitComponent Vector3 dest = m_Owner.unitAnimation.animator.deltaPosition; dest.z = 0; var state = m_Owner.unitAnimation.baseLayer.stateInfo; - if (state.IsTag("IgnoreY")) + bool ignoreY = m_Owner.unitAnimation.baseLayer.animationData.GetProperty(EAnimationProperty.IgnoreY, 0) != 0; + if (state.IsTag("IgnoreY") || ignoreY) { dest.y = 0; } -- cgit v1.1-26-g67d0