summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-08-27 18:53:44 +0800
committerchai <chaifix@163.com>2021-08-27 18:53:44 +0800
commite2284510c40e2d637c28108b50df2e403d51ec1c (patch)
treec85bdd331359d9ce8d9e29a9d7b876ca90429951
parent9f447daa59fe9393904206499e6872068a11e7f8 (diff)
*crossfade
-rw-r--r--Assets/Art/AnimClips/Frank_Slash_Pack/Animations/Frank_SlashPack_Assassin/FBX Animation/Root_Motion/Frank_RPG_Assassin_Attack01.FBXbin0 -> 1031744 bytes
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Combo01_Z0_3.asset33
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller908
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller.meta8
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller (renamed from Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller)2
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller.meta (renamed from Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller.meta)0
-rw-r--r--Assets/Scenes/Demo/AnimationEditScene.unity2
-rw-r--r--Assets/Scripts/Unit/Component/UnitAnimation.cs50
-rw-r--r--Assets/Scripts/Unit/Component/UnitState.cs18
-rw-r--r--Assets/Scripts/Unit/UnitRootMotion.cs9
10 files changed, 1012 insertions, 18 deletions
diff --git a/Assets/Art/AnimClips/Frank_Slash_Pack/Animations/Frank_SlashPack_Assassin/FBX Animation/Root_Motion/Frank_RPG_Assassin_Attack01.FBX b/Assets/Art/AnimClips/Frank_Slash_Pack/Animations/Frank_SlashPack_Assassin/FBX Animation/Root_Motion/Frank_RPG_Assassin_Attack01.FBX
new file mode 100644
index 00000000..282c09ca
--- /dev/null
+++ b/Assets/Art/AnimClips/Frank_Slash_Pack/Animations/Frank_SlashPack_Assassin/FBX Animation/Root_Motion/Frank_RPG_Assassin_Attack01.FBX
Binary files differ
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Combo01_Z0_3.asset b/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Combo01_Z0_3.asset
index ec5f275a..2b578cae 100644
--- a/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Combo01_Z0_3.asset
+++ b/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Combo01_Z0_3.asset
@@ -10,11 +10,12 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cab6406109041434e890f22d6455172f, type: 3}
- m_Name: Air_Combo01_Z0_3(Clone)
+ m_Name: Air_Combo01_Z0_3
m_EditorClassIdentifier:
animationName: Air_Combo01_Z0_3
animationPath: Assets/Bundle/Unit/PC/Erika/AnimationClip/Air_Combo01_Z0_3.anim
- animationEvents: []
+ animationEvents:
+ - {fileID: 114251761496054194}
hurtBoxes: []
hitBoxes: []
throwBoxes: []
@@ -33,6 +34,15 @@ MonoBehaviour:
inWeight: 0
outWeight: 0
- serializedVersion: 3
+ time: 0.48
+ value: 1.5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
time: 1
value: 1
inSlope: 0
@@ -55,3 +65,22 @@ MonoBehaviour:
parameters:
m_keys:
m_values: []
+--- !u!114 &114251761496054194
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9fe45d0826fb033448a877f1d49199d6, type: 3}
+ m_Name: EventEffect
+ m_EditorClassIdentifier:
+ startFrame: 24
+ effectPath: Assets/Art/Vfx/Sword slash VFX/Prefabs/Sword Slash 6.prefab
+ attached: 0
+ bone:
+ position: {x: 0, y: 0, z: 0}
+ rotation: {x: 0, y: 0, z: 0}
+ scale: {x: 0, y: 0, z: 0}
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller
new file mode 100644
index 00000000..429a9a07
--- /dev/null
+++ b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller
@@ -0,0 +1,908 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!91 &9100000
+AnimatorController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Erika_AnimatorControllerCrossFade
+ serializedVersion: 5
+ m_AnimatorParameters:
+ - m_Name: IdleStatus
+ m_Type: 1
+ m_DefaultFloat: 0.4
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ - m_Name: PlaybackSpeed0
+ m_Type: 1
+ m_DefaultFloat: 1
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ - m_Name: PlaybackSpeed1
+ m_Type: 1
+ m_DefaultFloat: 1
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 0}
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Basic
+ m_StateMachine: {fileID: 1107100304230058010}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+ - serializedVersion: 5
+ m_Name: Attack
+ m_StateMachine: {fileID: 1107681041014594778}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+ - serializedVersion: 5
+ m_Name: UpperBody
+ m_StateMachine: {fileID: 1107669995669758872}
+ m_Mask: {fileID: 31900000, guid: d5a10d76582efb742a48170e6fcec7ca, type: 2}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+--- !u!206 &206480665046382184
+BlendTree:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Blend Tree
+ m_Childs:
+ - serializedVersion: 2
+ m_Motion: {fileID: 7400000, guid: 599f2b26128dfd742b4aefbc285c4d3e, type: 2}
+ m_Threshold: 0.40057373
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Height
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: 7400000, guid: 6a53e3ed6230d2742939796aef1e214c, type: 2}
+ m_Threshold: 1
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Height
+ m_Mirror: 0
+ m_BlendParameter: IdleStatus
+ m_BlendParameterY: Height
+ m_MinThreshold: 0.40057373
+ m_MaxThreshold: 1
+ m_UseAutomaticThresholds: 0
+ m_NormalizedBlendValues: 0
+ m_BlendType: 0
+--- !u!206 &206677301753582214
+BlendTree:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Blend Tree
+ m_Childs:
+ - serializedVersion: 2
+ m_Motion: {fileID: 7400000, guid: 95c80bbb74677844aad0f268349b4743, type: 2}
+ m_Threshold: 0.09453471
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: IdleStatus
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: 7400000, guid: b3b491ff9a4b4204fb54105483e9458f, type: 2}
+ m_Threshold: 1
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: IdleStatus
+ m_Mirror: 0
+ m_BlendParameter: IdleStatus
+ m_BlendParameterY: IdleStatus
+ m_MinThreshold: 0.09453471
+ m_MaxThreshold: 1
+ m_UseAutomaticThresholds: 0
+ m_NormalizedBlendValues: 0
+ m_BlendType: 0
+--- !u!1101 &1101002184460743296
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102297523170354260}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101459780614957350
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102966563713409750}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101490274029905172
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102128302872726618}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101493541400856974
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102528537118139770}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101839656961236588
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102959491876525966}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1101950743644363386
+AnimatorStateTransition:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1102385235525877490}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &1102018842156954176
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AirAttack0
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 1a50f1532c8bfe644869ccd4c1379a9e, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102064426511052762
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Landing
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 30ab9f767efd0ad4bbb7f1a3f0103903, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102101182547217892
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack1
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102108504916990050
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Idle
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 206480665046382184}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter: PlaybackSpeed0
+--- !u!1102 &1102128302872726618
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack3
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102230929257620240
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack3
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102269967399741822
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack0
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102289505320285826
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Jump
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 80b0945bbe9b94f468cc20801c050baf, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter: PlaybackSpeed0
+--- !u!1102 &1102297523170354260
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack2
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101490274029905172}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102299012691714534
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack0
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101493541400856974}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102385235525877490
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack1
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101839656961236588}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102397782345947260
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AirAttack1
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 49bee39a341b8a04f954ff83d44eea6e, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102403163851985622
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AirAttack2
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 49bee39a341b8a04f954ff83d44eea6e, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102474951772684744
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Move
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 95c80bbb74677844aad0f268349b4743, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter: PlaybackSpeed0
+--- !u!1102 &1102528537118139770
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack1
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101002184460743296}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102642339950476984
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack2
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102700468040696058
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AirAttack3
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 49bee39a341b8a04f954ff83d44eea6e, type: 2}
+ m_Tag:
+ m_SpeedParameter: PlaybackSpeed0
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102857213712746212
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: LandingGround
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 26bb0d2d4098c084b9f324a004bea6d2, type: 2}
+ m_Tag: IgnoreY
+ m_SpeedParameter: IdleStatus
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102959491876525966
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack2
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101459780614957350}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102966563713409750
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack3
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &1102996721486872664
+AnimatorState:
+ serializedVersion: 5
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack0
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1101950743644363386}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &1107100304230058010
+AnimatorStateMachine:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Basic
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: 1102108504916990050}
+ m_Position: {x: 192, y: -492, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102289505320285826}
+ m_Position: {x: 444, y: -504, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102474951772684744}
+ m_Position: {x: -72, y: -492, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102064426511052762}
+ m_Position: {x: 444, y: -600, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102857213712746212}
+ m_Position: {x: 444, y: -552, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102700468040696058}
+ m_Position: {x: 264, y: -816, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102403163851985622}
+ m_Position: {x: 264, y: -864, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102018842156954176}
+ m_Position: {x: 264, y: -960, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102397782345947260}
+ m_Position: {x: 264, y: -912, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102230929257620240}
+ m_Position: {x: 552, y: -816, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102642339950476984}
+ m_Position: {x: 552, y: -864, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102101182547217892}
+ m_Position: {x: 552, y: -912, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 1102269967399741822}
+ m_Position: {x: 552, y: -960, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: -408, y: -888, z: 0}
+ m_EntryPosition: {x: 216, y: -420, z: 0}
+ m_ExitPosition: {x: -408, y: -924, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: 1102108504916990050}
+--- !u!1107 &1107669995669758872
+AnimatorStateMachine:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: UpperBody
+ m_ChildStates: []
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: 0}
+--- !u!1107 &1107681041014594778
+AnimatorStateMachine:
+ serializedVersion: 5
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Attack
+ m_ChildStates: []
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: 0}
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller.meta b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller.meta
new file mode 100644
index 00000000..fd510290
--- /dev/null
+++ b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerCrossFade.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dbcf42e4fb8a6ad4488eb7d2941acc31
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 9100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller
index e9319a08..e60df01c 100644
--- a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller
+++ b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller
@@ -6,7 +6,7 @@ AnimatorController:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Erika_AnimatorController
+ m_Name: Erika_AnimatorControllerTransition
serializedVersion: 5
m_AnimatorParameters:
- m_Name: ToIdle
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller.meta b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller.meta
index 1334b72e..1334b72e 100644
--- a/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorController.controller.meta
+++ b/Assets/Bundle/Unit/PC/Erika/AnimatorController/Erika_AnimatorControllerTransition.controller.meta
diff --git a/Assets/Scenes/Demo/AnimationEditScene.unity b/Assets/Scenes/Demo/AnimationEditScene.unity
index abcade31..ebded105 100644
--- a/Assets/Scenes/Demo/AnimationEditScene.unity
+++ b/Assets/Scenes/Demo/AnimationEditScene.unity
@@ -353,7 +353,7 @@ MonoBehaviour:
type: 3}
unitPrefab: {fileID: 8398550124946730917, guid: 7ad9bdd473f2e5f49a7ec144e5b5c999,
type: 3}
- animController: {fileID: 9100000, guid: 8fe6160e21621de4ba4b24805b4aa6b4, type: 2}
+ animController: {fileID: 9100000, guid: dbcf42e4fb8a6ad4488eb7d2941acc31, type: 2}
unitFolder: Assets/Bundle/Unit/PC/Erika/
unit: {fileID: 8398550124946730917, guid: 7ad9bdd473f2e5f49a7ec144e5b5c999, type: 3}
unitController: {fileID: 5422729882032160352, guid: 3006b392f87405b44bd878da2c6a54ec,
diff --git a/Assets/Scripts/Unit/Component/UnitAnimation.cs b/Assets/Scripts/Unit/Component/UnitAnimation.cs
index 5649206e..a6a7f3eb 100644
--- a/Assets/Scripts/Unit/Component/UnitAnimation.cs
+++ b/Assets/Scripts/Unit/Component/UnitAnimation.cs
@@ -1,4 +1,5 @@
-using System;
+#define ANIM_CROSS_FADE
+using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -102,7 +103,7 @@ public class AnimatorLayerInfo
{
get
{
- return stateInfo.normalizedTime * clipInfo[0].clip.length;
+ return playbackNomralizedTime * clipInfo[0].clip.length;
}
}
@@ -343,15 +344,23 @@ public class UnitAnimation : UnitComponent
public void AnimIdle()
{
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("Idle", 0.2f, 0);
+#else
ResetAllTriggers();
- m_Animator.SetTrigger(ETrigger.ToIdle.ToString());
- }
+ m_Animator.SetTrigger(ETrigger.ToIdle.ToString());
+#endif
+ }
public void AnimMove()
{
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("Move", 0.01f, 0);
+#else
ResetAllTriggers();
m_Animator.SetTrigger(ETrigger.ToMove.ToString());
- }
+#endif
+ }
public void AnimAttack()
{
@@ -367,20 +376,42 @@ public class UnitAnimation : UnitComponent
public void AnimJump()
{
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("Jump", 0.01f);
+#else
ResetAllTriggers();
SetTrigger(ETrigger.ToJump);
- }
+#endif
+ }
- public void AnimAirAttack()
+ public void AnimAirAttack(int id)
{
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("AirAttack" + id, 0.05f);
+#else
ResetAllTriggers();
SetTrigger(ETrigger.ToAirAttack);
+#endif
}
public void AnimLanding()
{
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("Landing", 0.05f);
+#else
ResetAllTriggers();
SetTrigger(ETrigger.ToLanding);
+#endif
+ }
+
+ public void AnimLandingGround()
+ {
+#if ANIM_CROSS_FADE
+ m_Animator.CrossFade("LandingGround", 0.00f);
+#else
+ ResetAllTriggers();
+ SetTrigger(ETrigger.ToLanding);
+#endif
}
void ResetAllTriggers()
@@ -392,4 +423,9 @@ public class UnitAnimation : UnitComponent
}
}
+ private void Play(string animState, float fade = 0.1f, float offset = 0f, int layer = 0)
+ {
+ m_Animator.CrossFade(animState, fade, layer, offset);
+ }
+
}
diff --git a/Assets/Scripts/Unit/Component/UnitState.cs b/Assets/Scripts/Unit/Component/UnitState.cs
index e27aa00b..7a731b02 100644
--- a/Assets/Scripts/Unit/Component/UnitState.cs
+++ b/Assets/Scripts/Unit/Component/UnitState.cs
@@ -120,7 +120,7 @@ public class UnitState : UnitComponent
{
if(m_Owner.isInAir) // 浮空切换到landing
{
-
+ ChangeState(EUnitState.Landing, new LandingParam());
}
else // idle
{
@@ -151,7 +151,6 @@ public class UnitState : UnitComponent
void OnIdleExit(EUnitState nextState)
{
- m_Owner.unitAnimation.animator.ResetTrigger("ToIdle");
}
#endregion
@@ -208,13 +207,16 @@ public class UnitState : UnitComponent
IEnumerator AirAttack(SkillParam param)
{
- m_Owner.unitAnimation.AnimAirAttack();
+ int id = 0;
+ m_Owner.unitAnimation.AnimAirAttack(id);
+ yield return null; // 等待animator更新
while (true)
{
bool canAttack = m_Owner.unitAnimation.layers[0].IsToggleOpen(EAnimationToogle.Combo);
if(canAttack && Input.GetKeyDown("j") )
{
- m_Owner.unitAnimation.AnimAirAttack();
+ ++id;
+ m_Owner.unitAnimation.AnimAirAttack(id);
yield return null; // 等待animator更新
yield return new WaitForTransitionDone(m_Owner.unitAnimation);
}
@@ -267,8 +269,10 @@ public class UnitState : UnitComponent
IEnumerator Landing(LandingParam param)
{
m_Owner.unitAnimation.AnimLanding();
+ yield return null;
+ yield return new WaitForTransitionDone(m_Owner.unitAnimation);
float vy = 0;
- float g = 9.8f * 1.5f;
+ float g = 9.8f;
bool landingGround = false;
while (true)
{
@@ -281,10 +285,12 @@ public class UnitState : UnitComponent
if(pos.y > 0 && pos.y <= 1 && !landingGround)
{
landingGround = true;
- m_Owner.unitAnimation.AnimLanding();
+ m_Owner.unitAnimation.AnimLandingGround();
}
if(pos.y <= 0)
{
+ pos.y = 0;
+ m_Owner.transform.position = pos;
ChangeState(EUnitState.Idle, new IdleParam());
}
yield return null;
diff --git a/Assets/Scripts/Unit/UnitRootMotion.cs b/Assets/Scripts/Unit/UnitRootMotion.cs
index 58ae814e..c4d4b2c9 100644
--- a/Assets/Scripts/Unit/UnitRootMotion.cs
+++ b/Assets/Scripts/Unit/UnitRootMotion.cs
@@ -72,7 +72,14 @@ public class UnitRootMotion : UnitComponent
{
Vector3 dest = m_Owner.unitAnimation.animator.deltaPosition;
dest.x = 0; //限制x轴始终在x=0
- m_Owner.transform.position += dest;
+
+ var state = m_Owner.unitAnimation.layers[0].stateInfo;
+ if(state.IsTag("IgnoreY"))
+ {
+ dest.y = 0;
+ }
+
+ m_Owner.transform.position += dest;
}
#endif