summaryrefslogtreecommitdiff
path: root/Erika/Assets/Scripts/Unit/Components
diff options
context:
space:
mode:
Diffstat (limited to 'Erika/Assets/Scripts/Unit/Components')
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitMotion.cs37
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState.cs20
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState_States.cs54
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/IdleState.cs2
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs36
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs.meta11
6 files changed, 109 insertions, 51 deletions
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitMotion.cs b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitMotion.cs
index d94a3f44..5836abac 100644
--- a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitMotion.cs
+++ b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitMotion.cs
@@ -43,7 +43,9 @@ public class UnitMotion : UnitComponent
set
{
m_currentMotionIDID = value;
- m_Dirty = true;
+
+ m_AnimationClip = null;
+ m_Dirty = true;
}
}
@@ -73,16 +75,21 @@ public class UnitMotion : UnitComponent
}
// 当前动作的动画片段
- public AnimationClip animationClip
+ private AnimationClip m_AnimationClip;
+ public AnimationClip animationClip
{
get
{
- if(animationData != null)
- {
- AnimationClip clip = ResourceManager.Instance.LoadAsset<AnimationClip>(animationData.animationPath);
- return clip;
- }
- return null;
+ if(m_AnimationClip == null)
+ {
+ if (animationData != null)
+ {
+ AnimationClip clip = ResourceManager.Instance.LoadAsset<AnimationClip>(animationData.animationPath);
+ m_AnimationClip = clip;
+ return clip;
+ }
+ }
+ return m_AnimationClip;
}
}
@@ -91,9 +98,10 @@ public class UnitMotion : UnitComponent
get
{
AnimatorStateInfo state = stateInfo;
- if (!state.loop && state.normalizedTime > 1)
- return 1;
- return state.normalizedTime % 1f;
+ //if (!state.loop && state.normalizedTime > 1) // 不知道为啥state.loop不对,始终是false,改用animationClip.isLooping
+ if(!animationClip.isLooping && state.normalizedTime > 1)
+ return 1;
+ return state.normalizedTime % 1f;
}
}
@@ -339,8 +347,11 @@ public class UnitMotion : UnitComponent
{
if(m_Animator != null)
{
- m_OverrideController[target] = clip != null ? clip : null;
- return true;
+ if(m_OverrideController[target] != clip)
+ {
+ m_OverrideController[target] = clip != null ? clip : null;
+ }
+ return true;
}
return false;
}
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState.cs b/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState.cs
index 4a7d489c..e44c7f85 100644
--- a/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState.cs
+++ b/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState.cs
@@ -110,16 +110,16 @@ public partial class PCState : UnitState
void TryDash()
{
- if (InputManager.Instance.TryCommand(0.5f, KeyCode.A, KeyCode.A))
- {
- TurnLeft();
- ChangeState(EUnitState.AirDash, new AirDashParam(), true);
- }
- if (InputManager.Instance.TryCommand(0.5f, KeyCode.D, KeyCode.D))
- {
- TurnRight();
- ChangeState(EUnitState.AirDash, new AirDashParam(), true);
- }
+ //if (InputManager.Instance.TryCommand(0.5f, KeyCode.A, KeyCode.A))
+ //{
+ // TurnLeft();
+ // ChangeState(EUnitState.AirDash, new AirDashParam(), true);
+ //}
+ //if (InputManager.Instance.TryCommand(0.5f, KeyCode.D, KeyCode.D))
+ //{
+ // TurnRight();
+ // ChangeState(EUnitState.AirDash, new AirDashParam(), true);
+ //}
}
void TryTurnAround()
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState_States.cs b/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState_States.cs
index 16a099d7..951945e3 100644
--- a/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState_States.cs
+++ b/Erika/Assets/Scripts/Unit/Components/UnitState/Erika/PCState_States.cs
@@ -176,7 +176,7 @@ public partial class PCState : UnitState
{
//m_Owner.pcAnimation.AnimAttackToAir(param.offset);
yield return null;
- InputManager.Instance.ClearCommand();
+ //InputManager.Instance.ClearCommand();
while (true)
{
TryTianyin();
@@ -185,11 +185,11 @@ public partial class PCState : UnitState
{
TryDash();
- if (InputManager.Instance.TryCommand(0.5f, false, KeyCode.J))
- {
- ChangeState(EUnitState.AirAttack, new SkillParam());
- yield break;
- }
+ //if (InputManager.Instance.TryCommand(0.5f, false, KeyCode.J))
+ //{
+ // ChangeState(EUnitState.AirAttack, new SkillParam());
+ // yield break;
+ //}
}
if (isAnimationReachEnd || isAnimationReachEndPoint)
@@ -215,7 +215,7 @@ public partial class PCState : UnitState
int id = 0;
//m_Owner.pcAnimation.AnimAirAttack(id++);
yield return null;
- InputManager.Instance.ClearCommand();
+ //InputManager.Instance.ClearCommand();
while (true)
{
if (TryTeleport())
@@ -228,15 +228,15 @@ public partial class PCState : UnitState
{
TryDash();
- if (InputManager.Instance.TryCommand(0.3f, false, KeyCode.J))
- {
- TryTurnAround();
+ //if (InputManager.Instance.TryCommand(0.3f, false, KeyCode.J))
+ //{
+ // TryTurnAround();
- //m_Owner.pcAnimation.AnimAirAttack(id++);
- //id %= total;
- ////yield return null; // 等待animator更新
- //yield return new WaitForTransitionDone(m_Owner.pcAnimation);
- }
+ // //m_Owner.pcAnimation.AnimAirAttack(id++);
+ // //id %= total;
+ // ////yield return null; // 等待animator更新
+ // //yield return new WaitForTransitionDone(m_Owner.pcAnimation);
+ //}
}
if (isAnimationReachEnd)
@@ -303,18 +303,18 @@ public partial class PCState : UnitState
//yield return new WaitForTransitionDone(pcAnimation);
while (true)
{
- if (InputManager.Instance.TryCommand(0.5f, KeyCode.A, KeyCode.A))
- {
- TurnLeft();
- ChangeState(EUnitState.AirDash, new AirDashParam());
- yield break;
- }
- if (InputManager.Instance.TryCommand(0.5f, KeyCode.D, KeyCode.D))
- {
- TurnRight();
- ChangeState(EUnitState.AirDash, new AirDashParam());
- yield break;
- }
+ //if (InputManager.Instance.TryCommand(0.5f, KeyCode.A, KeyCode.A))
+ //{
+ // TurnLeft();
+ // ChangeState(EUnitState.AirDash, new AirDashParam());
+ // yield break;
+ //}
+ //if (InputManager.Instance.TryCommand(0.5f, KeyCode.D, KeyCode.D))
+ //{
+ // TurnRight();
+ // ChangeState(EUnitState.AirDash, new AirDashParam());
+ // yield break;
+ //}
if (isAnimationReachEnd)
{
ChangeState(EUnitState.Landing, new LandingParam());
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/IdleState.cs b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/IdleState.cs
index e477d671..0aab3c51 100644
--- a/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/IdleState.cs
+++ b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/IdleState.cs
@@ -18,7 +18,7 @@ namespace UnitStates.Common
public override void OnEnter(IStateParam param)
{
- m_Motion.CrossFade(EAnimationType.Idle, 0);
+ m_Motion.CrossFade(EAnimationType.Idle, 1f);
}
public override void OnExit()
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs
new file mode 100644
index 00000000..6354af59
--- /dev/null
+++ b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs
@@ -0,0 +1,36 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+namespace UnitStates.Common
+{
+
+ public class MoveState : UnitStateBase
+ {
+ public struct IdleParam : IStateParam
+ {
+ }
+
+ public override void ModifyNextState(EUnitState state, UnitStateBase nextState)
+ {
+ }
+
+ public override void OnEnter(IStateParam param)
+ {
+ m_Motion.CrossFade(EAnimationType.Move, 1f);
+ }
+
+ public override void OnExit()
+ {
+ }
+
+ public override void OnFixedUpdate()
+ {
+ }
+
+ public override void OnUpdate()
+ {
+ }
+ }
+}
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs.meta b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs.meta
new file mode 100644
index 00000000..104d446c
--- /dev/null
+++ b/Erika/Assets/Scripts/Unit/Components/UnitStatemachine/Common/MoveState.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 18b4515f03d0b0d40ba3851fce451a64
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: