diff options
author | chai <chaifix@163.com> | 2021-09-01 12:42:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-09-01 12:42:40 +0800 |
commit | a93ea925263c23d5c08b5fca546eef81d6d4fec3 (patch) | |
tree | 596701fc44997ed8c0f1fc7608e4a2bfc5c69f56 | |
parent | c8af1f2c55109092f2c305f2fac5ab240d46399b (diff) |
*修改状态机状态切换
-rw-r--r-- | Assets/Scripts/Curve3D.meta | 8 | ||||
-rw-r--r-- | Assets/Scripts/Drone.meta | 8 | ||||
-rw-r--r-- | Assets/Scripts/Robot.meta | 8 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs | 28 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs | 11 | ||||
-rw-r--r-- | Assets/Scripts/Unit/TimelineEventProxy.cs | 15 |
6 files changed, 58 insertions, 20 deletions
diff --git a/Assets/Scripts/Curve3D.meta b/Assets/Scripts/Curve3D.meta new file mode 100644 index 00000000..fef1c5e7 --- /dev/null +++ b/Assets/Scripts/Curve3D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad8b718b6b700d8419838dad07158567 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drone.meta b/Assets/Scripts/Drone.meta new file mode 100644 index 00000000..694cff70 --- /dev/null +++ b/Assets/Scripts/Drone.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec3412151f8a72a41b2ed21316763399 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Robot.meta b/Assets/Scripts/Robot.meta new file mode 100644 index 00000000..0b5a087e --- /dev/null +++ b/Assets/Scripts/Robot.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c09ca1609552d24bbe697d1516f8aa9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs index a4752a8b..33bd4d4e 100644 --- a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs +++ b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs @@ -132,17 +132,17 @@ public class PCAnimation : UnitAnimation public void AnimIdle() { - this.CrossFade(EAnimState.Idle, 0.2f, 0); + CrossFade(EAnimState.Idle, 0.2f, 0); } public void AnimMove() { - this.CrossFade(EAnimState.Move, 0.01f, 0); + CrossFade(EAnimState.Move, 0.01f, 0); } public void AnimJump() { - this.CrossFade(EAnimState.Jump, 0.01f); + CrossFade(EAnimState.Jump, 0.01f); } public void AnimAirAttack(int id) @@ -151,16 +151,16 @@ public class PCAnimation : UnitAnimation switch (id) { case 0: - this.CrossFade(EAnimState.AirAttack0, 0.05f); + CrossFade(EAnimState.AirAttack0, 0.05f); break; case 1: - this.CrossFade(EAnimState.AirAttack1, 0.05f); + CrossFade(EAnimState.AirAttack1, 0.05f); break; case 2: - this.CrossFade(EAnimState.AirAttack2, 0.05f); + CrossFade(EAnimState.AirAttack2, 0.05f); break; case 3: - this.CrossFade(EAnimState.AirAttack3, 0.05f); + CrossFade(EAnimState.AirAttack3, 0.05f); break; } } @@ -171,16 +171,16 @@ public class PCAnimation : UnitAnimation switch (id) { case 0: - this.CrossFade(EAnimState.Attack0, 0.05f); + CrossFade(EAnimState.Attack0, 0.02f); break; case 1: - this.CrossFade(EAnimState.Attack1, 0.05f); + CrossFade(EAnimState.Attack1, 0.02f); break; case 2: - this.CrossFade(EAnimState.Attack2, 0.05f); + CrossFade(EAnimState.Attack2, 0.02f); break; case 3: - this.CrossFade(EAnimState.Attack3, 0.05f); + CrossFade(EAnimState.Attack3, 0.02f); break; } } @@ -193,18 +193,18 @@ public class PCAnimation : UnitAnimation } else { - this.CrossFade(EAnimState.AirDash, 0.05f); + CrossFade(EAnimState.AirDash, 0.05f); } } public void AnimLanding() { - this.CrossFade(EAnimState.Landing, 0.05f); + CrossFade(EAnimState.Landing, 0.05f); } public void AnimLandingGround() { - this.CrossFade(EAnimState.LandingGround, 0.00f); + CrossFade(EAnimState.LandingGround, 0.00f); } private void Play(EAnimState animState, int layerIndex = 0, float normalizedTime = float.NegativeInfinity) diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs index 2aad1e5f..6d17971d 100644 --- a/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs +++ b/Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs @@ -110,10 +110,15 @@ public class AnimatorLayerInfo { get { - //return stateInfo.normalizedTime % 1f; - if (!stateInfo.loop && stateInfo.normalizedTime > 1) + AnimatorStateInfo state = stateInfo; + if (!state.loop && state.normalizedTime > 1) return 1; - return stateInfo.normalizedTime % 1f; + //if (state.IsName("Attack0"))
+ //{
+ // Debug.Log("normalizedTime=" + state.normalizedTime); + // Debug.Log("playbackTimeInSeconds=" + state.normalizedTime * clipInfo[0].clip.length); + //} + return state.normalizedTime % 1f; } } diff --git a/Assets/Scripts/Unit/TimelineEventProxy.cs b/Assets/Scripts/Unit/TimelineEventProxy.cs index 51d437fe..825cf5bf 100644 --- a/Assets/Scripts/Unit/TimelineEventProxy.cs +++ b/Assets/Scripts/Unit/TimelineEventProxy.cs @@ -50,11 +50,14 @@ public partial class TimelineEventProxy private UnitAnimation m_UnitAnimation { get { return m_Owner.unitAnimation; } } - public TimelineEventProxy(Transform root, UnitController owner = null) + private AnimationData m_PrevAnimationData;
+
+ public TimelineEventProxy(Transform root, UnitController owner = null) { m_Root = root; m_Owner = owner; - } + m_PrevAnimationData = null; + } public static Type GetTypeByName(string name) { @@ -65,8 +68,14 @@ public partial class TimelineEventProxy public void ExecuteAnimationEvents(AnimationData animData, float animFrame) { if (animData == null) - return; + return;
+
int frame = (int)animFrame; + if (m_PrevAnimationData != animData)
+ {
+ m_PrevFrame = frame;
+ m_PrevAnimationData = animData; + }
if (frame != m_PrevFrame) { for (int i = m_PrevFrame + 1; i <= frame; i++) |