C# Class for handling Player Movement and / or similar behaviour

I am currently developing a unity-based multiplatform game (PC, IOS, Android) in a small team. This is the code we have created for the Character Actions inside the game. I am looking for feedback on the code itself as well as tips on how some Unity features could be used better. This is my first time developing a game with Unity.

The Game is also aimed for Mobile platforms as state above, so tips on optimization are welcome.

using AI.Enemy; using UnityEngine;  namespace Player.Script.Miru {     public class MiruScript : MonoBehaviour     {     public float Health;     public float MoveSpeed;     public float JumpHeight;      public float EvadeSpeed;     public float DefendCooldownTimer;     public float NormalDamage;     public float Cooldown;     public float Stamina;     public float HealthRegenerationRate;     public float StaminaRegenerationRate;      private bool _IsFacingForward;     private bool _IsGrounded;     private Rigidbody2D _RigidBody;     private RaycastHit2D _GroundDetector;     private RaycastHit2D _RightRayCast;     private RaycastHit2D _LeftRayCast;     private MinionScript _MinionScript;      private void Start() //Temporary values     {         MoveSpeed = 4f * Time.deltaTime;         JumpHeight = 10f;         EvadeSpeed = 5f;         DefendCooldownTimer = 0f;         NormalDamage = 50f;         Cooldown = 1f;         Stamina = 100f;         Health = 100f;         HealthRegenerationRate = 0.5f;         StaminaRegenerationRate = 10f;         _RigidBody = GetComponent<Rigidbody2D>();         _MinionScript = GetComponent<MinionScript>();     }      private void Update()     {         MoveRight(MoveSpeed);         MoveLeft(MoveSpeed);         Jump(JumpHeight);         Evade(EvadeSpeed);         Attack(NormalDamage);         DistanceFromObject();         AttackCooldown();         Defend();     }      private bool AttackCooldown()     {         if (Cooldown < 1f)         {             Cooldown += Time.deltaTime;             return true;         }          return false;     }      public int DamageDealt(float _damageDealt)     {         Health -= _damageDealt;          if (Health <= 0)             Destroy(gameObject);          return 0;     }      private int DistanceFromObject()     {         _RightRayCast = Physics2D.Raycast(transform.position, Vector2.right);         _LeftRayCast = Physics2D.Raycast(transform.position, Vector2.left);          if (_RightRayCast.distance < 1.5f && _LeftRayCast.distance < 1.5f)             return 3;          if (_RightRayCast.distance < 1.5f)             return 1;          if (_LeftRayCast.distance < 1.5f)             return 2;          return 0;     }      private int Attack(float _damageDealt)     {         if (_IsFacingForward && Input.GetKeyDown(KeyCode.X) && _RightRayCast.distance <= 1.5f && !AttackCooldown())         {             _MinionScript = _RightRayCast.collider.gameObject.GetComponent<MinionScript>();             _MinionScript.DamageDealt(_damageDealt);             Cooldown = 0;             return 1;         }          if (_IsFacingForward == false && Input.GetKeyDown(KeyCode.X) && _LeftRayCast.distance <= 1.5f && !AttackCooldown())         {             _MinionScript = _LeftRayCast.collider.gameObject.GetComponent<MinionScript>();             _MinionScript.DamageDealt(_damageDealt);             Cooldown = 0;             return 2;         }          return 0;     }      private int MoveRight(float _moveSpeed)     {         if (Input.GetKey(KeyCode.RightArrow) && Defend() == 0)         {             transform.Translate(_moveSpeed, 0, 0);             _IsFacingForward = true;             return 1;         }          return 0;     }      private int MoveLeft(float _moveSpeed)     {         if (Input.GetKey(KeyCode.LeftArrow) && Defend() == 0)         {             transform.Translate(-_moveSpeed, 0, 0);             _IsFacingForward = false;             return 1;         }          return 0;     }      private int Jump(float _height)     {         _GroundDetector = Physics2D.Raycast(transform.position, Vector2.down);          if (Input.GetKeyDown(KeyCode.Z) && _IsGrounded)         {             _RigidBody.AddForce(Vector2.up * _height, ForceMode2D.Impulse);             return 1;         }          if (_GroundDetector.distance > 0.6f)         {             _IsGrounded = false;             return 2;         }          _IsGrounded = true;         return 0;     }      private int Evade(float _evadeSpeed)     {         if (Input.GetKeyDown(KeyCode.Space) && _IsGrounded)             switch (DistanceFromObject())             {                 case 1:                     _RigidBody.AddForce(Vector2.up * _evadeSpeed, ForceMode2D.Impulse);                     _RigidBody.AddForce(Vector2.left * _evadeSpeed, ForceMode2D.Impulse);                     return 1;                  case 2:                     _RigidBody.AddForce(Vector2.up * _evadeSpeed, ForceMode2D.Impulse);                     _RigidBody.AddForce(Vector2.right * _evadeSpeed, ForceMode2D.Impulse);                     return 2;                  case 3:                     _RigidBody.AddForce(Vector2.up * _evadeSpeed * 3, ForceMode2D.Impulse);                     return 3;             }          return 0;     }      private int Defend()     {         if (Input.GetKey(KeyCode.Space) && _IsGrounded)         {             DefendCooldownTimer += Time.deltaTime;             if (DefendCooldownTimer >= 0.5f)             {                 return 1;             }         }         else             DefendCooldownTimer = 0f;          return 0;     } } }