summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit')
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs28
-rw-r--r--Assets/Scripts/Unit/Components/UnitAnimation/UnitAnimation.cs11
-rw-r--r--Assets/Scripts/Unit/TimelineEventProxy.cs15
3 files changed, 34 insertions, 20 deletions
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++)