From 6c23b4b99c1e691ef54b84101d8b11d210fb9e94 Mon Sep 17 00:00:00 2001 From: Baptiste Date: Tue, 13 Jun 2023 09:47:55 -0400 Subject: [PATCH] v0 --- .../BaseStick/animator_baseStick.controller | 148 ++++++++---------- .../animator_baseStick.controller.meta | 2 +- .../BaseStick/baseStick_attack.anim | 2 +- .../Animations/BaseStick/baseStick_idle.anim | 2 +- Assets/Scripts/Ally/Archer.cs | 4 + Assets/Scripts/AnimationEntity.cs | 33 ++++ Assets/Scripts/AnimationEntity.cs.meta | 11 ++ Assets/Scripts/Entity.cs | 7 + 8 files changed, 119 insertions(+), 90 deletions(-) create mode 100644 Assets/Scripts/AnimationEntity.cs create mode 100644 Assets/Scripts/AnimationEntity.cs.meta diff --git a/Assets/Animations/BaseStick/animator_baseStick.controller b/Assets/Animations/BaseStick/animator_baseStick.controller index b28c4c8..85eb3e6 100644 --- a/Assets/Animations/BaseStick/animator_baseStick.controller +++ b/Assets/Animations/BaseStick/animator_baseStick.controller @@ -1,18 +1,15 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1101 &-6019688218706219262 +--- !u!1101 &-6631594651663551408 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: - m_Conditions: - - m_ConditionMode: 1 - m_ConditionEvent: Attack - m_EventTreshold: 0 + m_Conditions: [] m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -1287810223429890817} + m_DstState: {fileID: 4151081420978197387} m_Solo: 0 m_Mute: 0 m_IsExit: 0 @@ -20,64 +17,11 @@ AnimatorStateTransition: m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.75 - m_HasExitTime: 0 + m_HasExitTime: 1 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1102 &-1287810223429890817 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: baseStick_attack - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: 6419842955330930747} - 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: ff0a07b8a8691ba4390094d6fb771bef, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1102 &-351144688566974252 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: baseStick_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: 0 - m_MirrorParameterActive: 0 - m_CycleOffsetParameterActive: 0 - m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 346b13552d55b9f4a989013f6aa4d869, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -92,7 +36,7 @@ AnimatorController: m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -116,41 +60,71 @@ AnimatorStateMachine: m_Name: Base Layer m_ChildStates: - serializedVersion: 1 - m_State: {fileID: -351144688566974252} - m_Position: {x: 260, y: 110, z: 0} + m_State: {fileID: 4151081420978197387} + m_Position: {x: 360, y: 80, z: 0} - serializedVersion: 1 - m_State: {fileID: -1287810223429890817} - m_Position: {x: 260, y: 50, z: 0} + m_State: {fileID: 6697012865370906260} + m_Position: {x: 380, y: -50, z: 0} m_ChildStateMachines: [] - m_AnyStateTransitions: - - {fileID: -6019688218706219262} + m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_AnyStatePosition: {x: 30, y: 0, 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: -351144688566974252} ---- !u!1101 &6419842955330930747 -AnimatorStateTransition: + m_DefaultState: {fileID: 4151081420978197387} +--- !u!1102 &4151081420978197387 +AnimatorState: + serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: [] - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -351144688566974252} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.6808511 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 + m_Name: idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -6631594651663551408} + 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: 346b13552d55b9f4a989013f6aa4d869, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &6697012865370906260 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: attack + 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: ff0a07b8a8691ba4390094d6fb771bef, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Animations/BaseStick/animator_baseStick.controller.meta b/Assets/Animations/BaseStick/animator_baseStick.controller.meta index 8ef36cb..5cfcc08 100644 --- a/Assets/Animations/BaseStick/animator_baseStick.controller.meta +++ b/Assets/Animations/BaseStick/animator_baseStick.controller.meta @@ -2,7 +2,7 @@ fileFormatVersion: 2 guid: 3cb91de3f312e514a92c799adf35e898 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 9100000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Animations/BaseStick/baseStick_attack.anim b/Assets/Animations/BaseStick/baseStick_attack.anim index 66be258..a92a0b4 100644 --- a/Assets/Animations/BaseStick/baseStick_attack.anim +++ b/Assets/Animations/BaseStick/baseStick_attack.anim @@ -522,7 +522,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 + m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Animations/BaseStick/baseStick_idle.anim b/Assets/Animations/BaseStick/baseStick_idle.anim index 56f1e49..8f6a451 100644 --- a/Assets/Animations/BaseStick/baseStick_idle.anim +++ b/Assets/Animations/BaseStick/baseStick_idle.anim @@ -323,7 +323,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 + m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Scripts/Ally/Archer.cs b/Assets/Scripts/Ally/Archer.cs index 7577401..8872636 100644 --- a/Assets/Scripts/Ally/Archer.cs +++ b/Assets/Scripts/Ally/Archer.cs @@ -13,6 +13,7 @@ public class Archer : Ally void Start() { _rigidbodyAlly = GetComponent(); + Animation = gameObject.AddComponent(); } void Update() { @@ -25,9 +26,12 @@ public class Archer : Ally } void AttackEnemy() { + //Attack Cooldown if(AttackSpeed < AttackSpeedWait) { + Animation.Attack(); + GameObject _newArrow = Instantiate(_arrow, _rigidbodyAlly.position, Quaternion.identity); //Warning : the Speed of the arrow is equal to the speed of this unit, if this unit need to move, use an other variable ! diff --git a/Assets/Scripts/AnimationEntity.cs b/Assets/Scripts/AnimationEntity.cs new file mode 100644 index 0000000..7d80a9f --- /dev/null +++ b/Assets/Scripts/AnimationEntity.cs @@ -0,0 +1,33 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AnimationEntity : MonoBehaviour +{ + + private Animator _animator_entity; + private bool _doSomething = false; + + void Start() { + _animator_entity = GetComponentInChildren(); + } + + void Update() { + + if (_doSomething && _animator_entity.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1f) + { + Idle(); + _doSomething = false; + } + } + + public void Idle() { + _animator_entity.Play("idle", 0, 0f); + } + + public void Attack() { + _animator_entity.Play("attack", 0, 0f); + _doSomething = true; + } + +} diff --git a/Assets/Scripts/AnimationEntity.cs.meta b/Assets/Scripts/AnimationEntity.cs.meta new file mode 100644 index 0000000..45dcf82 --- /dev/null +++ b/Assets/Scripts/AnimationEntity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52b5039c6ed892a42b71ae16566ae511 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Entity.cs b/Assets/Scripts/Entity.cs index eb49380..3a8eee1 100644 --- a/Assets/Scripts/Entity.cs +++ b/Assets/Scripts/Entity.cs @@ -15,6 +15,7 @@ public class Entity : LevelObject [SerializeField] private float _attack_speed; private float _attack_speed_wait = 0f; + private AnimationEntity _animation; //Enemy Spotted private bool _isEnemyDetected = false; @@ -64,6 +65,12 @@ public class Entity : LevelObject set { _enemy = value; } } + public AnimationEntity Animation + { + get { return _animation; } + set { _animation = value; } + } + #region [LevelManager code] public override bool Equals(ILevelObject other) {