From 448b5092206ccd9db760b00aeb9ab2233270bd6e Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Fri, 15 Dec 2023 17:55:59 +0000
Subject: [PATCH] Added damageable script + death animations
---
Assets/Scripts/Damageable.cs.meta | 11 +
Assets/Characters/Player/Player.prefab | 48 +---
Assets/Scripts/PlayerController.cs | 44 ++--
Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs.meta | 11 +
Assets/Scripts/StateMachine/SetBoolBehaviour.cs.meta | 11 +
Assets/Scripts/Damageable.cs | 76 +++++++
Assets/Characters/Player/AC_Player.controller | 149 ++++++++++++++
Assets/Characters/Player/player_death.anim | 72 +++++++
Assets/Scripts/StateMachine/SetBoolBehaviour.cs | 61 ++++++
Assets/Scripts/StateMachine.meta | 8
Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs | 34 +++
Assets/Characters/Player/player_death.anim.meta | 8
Assets/Scripts/AnimationStrings.cs | 12
Assets/Scripts/TouchingDirections.cs | 12
14 files changed, 492 insertions(+), 65 deletions(-)
diff --git a/Assets/Characters/Player/AC_Player.controller b/Assets/Characters/Player/AC_Player.controller
index 964eb59..08682b6 100644
--- a/Assets/Characters/Player/AC_Player.controller
+++ b/Assets/Characters/Player/AC_Player.controller
@@ -25,6 +25,59 @@
m_InterruptionSource: 1
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
+--- !u!1102 &-8776216366201631375
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: player_death
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours:
+ - {fileID: -2493127153716391096}
+ 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: cec1a898bd6cf1f4f87968928d9016ea, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &-8551537280866366805
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: player_hit
+ 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!1107 &-8244801798701371434
AnimatorStateMachine:
serializedVersion: 6
@@ -43,12 +96,18 @@
- serializedVersion: 1
m_State: {fileID: 7984510369417086179}
m_Position: {x: 620, y: 200, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -8776216366201631375}
+ m_Position: {x: 620, y: 300, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -8551537280866366805}
+ m_Position: {x: 620, y: 390, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
- m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_AnyStatePosition: {x: 400, y: 310, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 880, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
@@ -78,6 +137,32 @@
m_InterruptionSource: 1
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
+--- !u!1102 &-7583940583200162132
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: player_death
+ 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: cec1a898bd6cf1f4f87968928d9016ea, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
--- !u!1107 &-3544671305424738950
AnimatorStateMachine:
serializedVersion: 6
@@ -86,12 +171,16 @@
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
- m_ChildStates: []
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: -7583940583200162132}
+ m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines:
- serializedVersion: 1
m_StateMachine: {fileID: -8244801798701371434}
m_Position: {x: 320, y: 110, z: 0}
- m_AnyStateTransitions: []
+ m_AnyStateTransitions:
+ - {fileID: 7389560801624237999}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
@@ -100,6 +189,23 @@
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 68305137226140118}
+--- !u!114 &-2493127153716391096
+MonoBehaviour:
+ m_ObjectHideFlags: 1
+ 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: 40c71d8fcb09c1d4ba6bf7f07a33b574, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ boolName: CanMove
+ updateOnState: 1
+ updateOnStateMachine: 0
+ valueOnEnter: 0
+ valueOnExit: 0
--- !u!1101 &-1567565794043545918
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -167,6 +273,18 @@
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
+ - m_Name: IsAlive
+ m_Type: 4
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 1
+ m_Controller: {fileID: 0}
+ - m_Name: CanMove
+ m_Type: 4
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 1
+ m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@@ -317,6 +435,31 @@
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &7389560801624237999
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 2
+ m_ConditionEvent: IsAlive
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8776216366201631375}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 0
--- !u!1101 &7462440421188174382
AnimatorStateTransition:
m_ObjectHideFlags: 1
diff --git a/Assets/Characters/Player/Player.prefab b/Assets/Characters/Player/Player.prefab
index 6cad5be..67015b8 100644
--- a/Assets/Characters/Player/Player.prefab
+++ b/Assets/Characters/Player/Player.prefab
@@ -122,7 +122,7 @@
- component: {fileID: 3884295854780712968}
- component: {fileID: 2451348752795735853}
- component: {fileID: 5338311196462064651}
- - component: {fileID: 3829651782493779324}
+ - component: {fileID: 2350719025294399868}
m_Layer: 0
m_Name: Player
m_TagString: Untagged
@@ -429,40 +429,26 @@
minNormalAngle: 0
maxNormalAngle: 0
groundDistance: 0.05
+ wallDistance: 0.2
+ ceilingDistance: 0.05
rotorGO: {fileID: 1519978218308964847}
_isGrounded: 1
---- !u!70 &3829651782493779324
-CapsuleCollider2D:
+ _isAtWall: 0
+ _isAtCeiling: 0
+--- !u!114 &2350719025294399868
+MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3345854317100013954}
- m_Enabled: 0
- m_Density: 1
- m_Material: {fileID: 0}
- m_IncludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_ExcludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_LayerOverridePriority: 0
- m_ForceSendLayers:
- serializedVersion: 2
- m_Bits: 4294967295
- m_ForceReceiveLayers:
- serializedVersion: 2
- m_Bits: 4294967295
- m_ContactCaptureLayers:
- serializedVersion: 2
- m_Bits: 4294967295
- m_CallbackLayers:
- serializedVersion: 2
- m_Bits: 4294967295
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_Size: {x: 0.829981, y: 0.93356335}
- m_Direction: 0
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 352737c44bb3905498d44716afca4984, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _maxHealth: 100
+ _health: 100
+ _isAlive: 1
+ isInvincible: 0
+ invincibilityTime: 0.25
diff --git a/Assets/Characters/Player/player_death.anim b/Assets/Characters/Player/player_death.anim
new file mode 100644
index 0000000..a1b4fd8
--- /dev/null
+++ b/Assets/Characters/Player/player_death.anim
@@ -0,0 +1,72 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: player_death
+ serializedVersion: 7
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - serializedVersion: 2
+ curve:
+ - time: 0
+ value: {fileID: 21300000, guid: 3e7d7385969bceb428fecc1b6408737f, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ flags: 2
+ m_SampleRate: 1
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ isIntCurve: 0
+ isSerializeReferenceCurve: 0
+ pptrCurveMapping:
+ - {fileID: 21300000, guid: 3e7d7385969bceb428fecc1b6408737f, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Characters/Player/player_death.anim.meta b/Assets/Characters/Player/player_death.anim.meta
new file mode 100644
index 0000000..197e845
--- /dev/null
+++ b/Assets/Characters/Player/player_death.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cec1a898bd6cf1f4f87968928d9016ea
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/AnimationStrings.cs b/Assets/Scripts/AnimationStrings.cs
index ba13bc5..07c2fe6 100644
--- a/Assets/Scripts/AnimationStrings.cs
+++ b/Assets/Scripts/AnimationStrings.cs
@@ -5,12 +5,14 @@
{
internal class Player
{
- internal static string IsMoving = "IsMoving";
- internal static string IsFlying = "IsFlying";
+ internal static string isMoving = "IsMoving";
+ internal static string isFlying = "IsFlying";
- internal static string IsGrounded = "IsGrounded";
+ internal static string isGrounded = "IsGrounded";
- public static string IsAtWall = "IsAtWall";
- public static string IsAtCeiling = "IsAtCeiling";
+ public static string isAtWall = "IsAtWall";
+ public static string isAtCeiling = "IsAtCeiling";
}
+ public static string isAlive = "IsAlive";
+ public static string canMove = "CanMove";
}
\ No newline at end of file
diff --git a/Assets/Scripts/Damageable.cs b/Assets/Scripts/Damageable.cs
new file mode 100644
index 0000000..7901a04
--- /dev/null
+++ b/Assets/Scripts/Damageable.cs
@@ -0,0 +1,76 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class Damageable : MonoBehaviour
+{
+ Animator animator;
+
+ [SerializeField]
+ private int _maxHealth = 100;
+ [SerializeField]
+ private int _health;
+ [SerializeField]
+ private bool _isAlive = true;
+ [SerializeField]
+ private bool isInvincible = false;
+ private float timeSinceHit = 0f;
+ public float invincibilityTime = 0.25f;
+
+ public int MaxHealth
+ {
+ get { return _maxHealth; }
+ set { _maxHealth = value; }
+ }
+ public int Health
+ {
+ get { return _health; }
+ set
+ {
+ _health = value;
+ if (value <= 0)
+ {
+ IsAlive = false;
+ }
+ }
+ }
+ public bool IsAlive
+ {
+ get { return _isAlive; }
+ private set
+ {
+ _isAlive = value;
+ animator.SetBool(AnimationStrings.isAlive, value);
+ }
+ }
+
+ private void Awake()
+ {
+ Health = MaxHealth;
+ animator = GetComponent<Animator>();
+ }
+ private void Update()
+ {
+ if (isInvincible)
+ {
+ if (timeSinceHit > invincibilityTime)
+ {
+ isInvincible = false;
+ timeSinceHit = 0;
+ }
+ else
+ {
+ timeSinceHit += Time.deltaTime;
+ }
+ }
+ }
+
+ public void Hit(int damage)
+ {
+ if (IsAlive && !isInvincible)
+ {
+ Health -= damage;
+ isInvincible = true;
+ }
+ }
+}
diff --git a/Assets/Scripts/Damageable.cs.meta b/Assets/Scripts/Damageable.cs.meta
new file mode 100644
index 0000000..9dcab35
--- /dev/null
+++ b/Assets/Scripts/Damageable.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 352737c44bb3905498d44716afca4984
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs
index b2d1868..4bf68d8 100644
--- a/Assets/Scripts/PlayerController.cs
+++ b/Assets/Scripts/PlayerController.cs
@@ -24,7 +24,7 @@
private set
{
_isMoving = value;
- animator.SetBool(AnimationStrings.Player.IsMoving, value);
+ animator.SetBool(AnimationStrings.Player.isMoving, value);
}
}
@@ -36,8 +36,8 @@
private set
{
_isFlying = value;
- animator.SetBool(AnimationStrings.Player.IsFlying, value);
- animator_rotor.SetBool(AnimationStrings.Player.IsFlying, value);
+ animator.SetBool(AnimationStrings.Player.isFlying, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isFlying, value);
}
}
@@ -56,6 +56,14 @@
}
}
+ public bool CanMove { get
+ {
+ return animator.GetBool(AnimationStrings.canMove);
+ }
+ }
+
+
+
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
@@ -64,18 +72,6 @@
touchingDirections = GetComponent<TouchingDirections>();
}
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-
private void FixedUpdate()
{
if (moveInput.y == 0)
@@ -108,14 +104,22 @@
public void OnMove(InputAction.CallbackContext context)
{
- moveInput = context.ReadValue<Vector2>();
+ if (CanMove)
+ {
+ moveInput = context.ReadValue<Vector2>();
- IsMoving = moveInput.x != 0;
+ IsMoving = moveInput.x != 0;
- IsFlying = (moveInput.y != 0);
+ IsFlying = (moveInput.y != 0);
- SetFacingDirection(moveInput);
-
+ SetFacingDirection(moveInput);
+ }
+ else
+ {
+ IsMoving = false;
+ IsFlying = false;
+ moveInput = Vector2.zero;
+ }
}
private void SetFacingDirection(Vector2 moveInput)
diff --git a/Assets/Scripts/StateMachine.meta b/Assets/Scripts/StateMachine.meta
new file mode 100644
index 0000000..100497b
--- /dev/null
+++ b/Assets/Scripts/StateMachine.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e937e1d23a0607419018e509e82c4bf
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs b/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs
new file mode 100644
index 0000000..ad873db
--- /dev/null
+++ b/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs
@@ -0,0 +1,34 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class FadeRemoveBehaviour : StateMachineBehaviour
+{
+ public float fadeTime = 0.5f;
+ private float timeElapsed = 0;
+ SpriteRenderer spriteRenderer;
+ GameObject objToRemove;
+ Color startColor;
+ // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
+ override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ {
+ timeElapsed = 0f;
+ spriteRenderer = animator.GetComponent<SpriteRenderer>();
+ objToRemove = animator.gameObject;
+ startColor = spriteRenderer.color;
+
+ }
+
+ // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
+ override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ {
+ timeElapsed += Time.deltaTime;
+ float newAlpha = startColor.a * (1 - (timeElapsed / fadeTime));
+ spriteRenderer.color = new Color(startColor.r, startColor.g, startColor.b, newAlpha);
+
+ if (timeElapsed > fadeTime)
+ {
+ Destroy(objToRemove);
+ }
+ }
+}
diff --git a/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs.meta b/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs.meta
new file mode 100644
index 0000000..65be77b
--- /dev/null
+++ b/Assets/Scripts/StateMachine/FadeRemoveBehaviour.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 26345c45e327dbe46b644204cb0f8e5b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/StateMachine/SetBoolBehaviour.cs b/Assets/Scripts/StateMachine/SetBoolBehaviour.cs
new file mode 100644
index 0000000..979cc44
--- /dev/null
+++ b/Assets/Scripts/StateMachine/SetBoolBehaviour.cs
@@ -0,0 +1,61 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class SetBoolBehaviour : StateMachineBehaviour
+{
+ public string boolName;
+ public bool updateOnState;
+ public bool updateOnStateMachine;
+ public bool valueOnEnter, valueOnExit;
+
+ // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
+ override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ {
+ if(updateOnState)
+ {
+ animator.SetBool(boolName, valueOnEnter);
+ }
+ }
+
+ // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
+ //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ //{
+ //
+ //}
+
+ // OnStateExit is called when a transition ends and the state machine finishes evaluating this state
+ override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ {
+ if (updateOnState)
+ {
+ animator.SetBool(boolName, valueOnExit);
+ }
+ }
+
+ // OnStateMove is called right after Animator.OnAnimatorMove()
+ //override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ //{
+ // // Implement code that processes and affects root motion
+ //}
+
+ // OnStateIK is called right after Animator.OnAnimatorIK()
+ //override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
+ //{
+ // // Implement code that sets up animation IK (inverse kinematics)
+ //}
+ public override void OnStateMachineEnter(Animator animator, int stateMachinePathHash)
+ {
+ if (updateOnStateMachine)
+ {
+ animator.SetBool(boolName, valueOnEnter);
+ }
+ }
+ public override void OnStateMachineExit(Animator animator, int stateMachinePathHash)
+ {
+ if (updateOnStateMachine)
+ {
+ animator.SetBool(boolName, valueOnExit);
+ }
+ }
+}
diff --git a/Assets/Scripts/StateMachine/SetBoolBehaviour.cs.meta b/Assets/Scripts/StateMachine/SetBoolBehaviour.cs.meta
new file mode 100644
index 0000000..01f657a
--- /dev/null
+++ b/Assets/Scripts/StateMachine/SetBoolBehaviour.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 40c71d8fcb09c1d4ba6bf7f07a33b574
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs
index 01e3ab7..4a26280 100644
--- a/Assets/Scripts/TouchingDirections.cs
+++ b/Assets/Scripts/TouchingDirections.cs
@@ -31,8 +31,8 @@
set
{
_isGrounded = value;
- animator.SetBool(AnimationStrings.Player.IsGrounded, value);
- animator_rotor.SetBool(AnimationStrings.Player.IsGrounded, value);
+ animator.SetBool(AnimationStrings.Player.isGrounded, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isGrounded, value);
}
}
@@ -45,8 +45,8 @@
set
{
_isAtWall = value;
- animator.SetBool(AnimationStrings.Player.IsAtWall, value);
- animator_rotor.SetBool(AnimationStrings.Player.IsAtWall, value);
+ animator.SetBool(AnimationStrings.Player.isAtWall, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isAtWall, value);
}
}
@@ -59,8 +59,8 @@
set
{
_isAtCeiling = value;
- animator.SetBool(AnimationStrings.Player.IsAtCeiling, value);
- animator_rotor.SetBool(AnimationStrings.Player.IsAtCeiling, value);
+ animator.SetBool(AnimationStrings.Player.isAtCeiling, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isAtCeiling, value);
}
}
--
Gitblit v1.10.0