- Home /
 
Deactivate Swipe Controls on Pause?
When I pause my game, I wanna disable the in-game controls. How do I do this?
  using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  
  public class PlayerMotor : MonoBehaviour
  {
      private const float LANE_DISTANCE = 2.0f;
      private const float TURN_SPEED = 0.05f;
  
      //
      private bool isRunning = false;
      public static bool invincible = false;
      public static bool shield = false;
  
  
      // Animation
      private Animator anim;
  
      // Movement
      private CharacterController controller;
      private float jumpForce = 7.0f;
      private float gravity = 12.0f;
      private float verticalVelocity;
      private int desiredLane = 1; // 0 = Left, 1 = Middle, 2 = Right
  
      // Speed Modifier
      private float originalSpeed = 8.5f;
      private float speed = 7.0f;
      public GameObject Player;
      public ParticleSystem MagnetParticles;
      public ParticleSystem MultiplyParticles;
      public float speedPowerupTime;
      public float PowerupDuration = 5;
      Vector3 temp = new Vector3(0f, -1, 0);
  
      private void Start()
      {
          speed = originalSpeed;
          controller = GetComponent<CharacterController>();
          anim = GetComponent<Animator>();
      }
  
      private void Update()
      {
          if (!isRunning)
              return;
  
          // Gather the inputs on which lane we should be in
          if (MobileInput.Instance.SwipeLeft)
              MoveLane(false);
          if (MobileInput.Instance.SwipeRight)
              MoveLane(true);
  
          // calculate where we should be in the future
          Vector3 targetPosition = transform.position.z * Vector3.forward;
          if (desiredLane == 0)
              targetPosition += Vector3.left * LANE_DISTANCE;
          else if (desiredLane == 2)
              targetPosition += Vector3.right * LANE_DISTANCE;
  
          // Lets calculate our move delta
          Vector3 moveVector = Vector3.zero;
          moveVector.x = (targetPosition - transform.position).normalized.x * speed;
  
          bool isGrounded = IsGrounded();
          anim.SetBool("Grounded", isGrounded);
  
          // Calculate Y
          if (isGrounded) // if Grounded
          {
              verticalVelocity = -0.1f;
  
              if (MobileInput.Instance.SwipeUp)
              {
                  // Jump
                  FindObjectOfType<AudioManager>().Play("Jump");
                  anim.SetTrigger("Jump");
                  verticalVelocity = jumpForce;
              }
              else if (MobileInput.Instance.SwipeDown)
              {
                  // Slide
                  FindObjectOfType<AudioManager>().Play("Slide");
                  StartSliding();
                  Invoke("StopSliding", 1.0f);
              }
          }
          else
          {
              verticalVelocity -= (gravity * Time.deltaTime);
  
              // Fast Falling Mechanic
              if (MobileInput.Instance.SwipeDown)
              {
                  verticalVelocity = -jumpForce;
              }
          }
  
          moveVector.y = verticalVelocity;
          moveVector.z = speed;
  
          controller.Move(moveVector * Time.deltaTime);
  
          // Rotate the Character to Where She is Going
          Vector3 dir = controller.velocity;
          if (dir != Vector3.zero)
          {
              dir.y = 0;
              transform.forward = Vector3.Lerp(transform.forward, dir, 0.05f);
          }
  
      }
  
      public void SetSpeed(float modifier)
      {
          speed = 5 + modifier;
      }
  
  
      private void StartSliding()
      {
          anim.SetBool("Sliding", true);
          controller.height /= 2;
          controller.center = new Vector3(controller.center.x, controller.center.y / 2, controller.center.z);
          MagnetParticles.transform.position += temp;
          MultiplyParticles.transform.position += temp;
      }
  
      private void StopSliding()
      {
          anim.SetBool("Sliding", false);
          MagnetParticles.transform.position -= temp;
          MultiplyParticles.transform.position -= temp;
          controller.height *= 2;
          controller.center = new Vector3(controller.center.x, controller.center.y * 2, controller.center.z);
      }
  
      private void MoveLane(bool goingRight)
      {
          desiredLane += (goingRight) ? 1 : -1;
          desiredLane = Mathf.Clamp(desiredLane, 0, 2);
      }
  
      private bool IsGrounded()
      {
          Ray groundRay = new Ray(new Vector3(controller.bounds.center.x, (controller.bounds.center.y - controller.bounds.extents.y) + 0.2f, controller.bounds.center.z), Vector3.down);
          return Physics.Raycast(groundRay, 0.2f + 0.1f);
      }
  
      public void StartRunning()
      {
          isRunning = true;
          anim.SetTrigger("StartRunning");
      }
  
      private void Crash()
      {
          Player.GetComponent<CharacterController>().enabled = false;
          isRunning = false;
          GameManager.Instance.OnDeath();
          anim.SetTrigger("Death");
          speed = -1.0f;
      }
  
      private void OnControllerColliderHit(ControllerColliderHit hit)
      {
          if (hit.gameObject.tag == "Obstacle")
          {
              if (!invincible)
              {
                  if (!shield)
                  {
                      Crash();
                  }
                  else
                  {
                      shield = false;
                      FindObjectOfType<PowerUpSpawner>().shield.GetComponent<Shield>().Disable();
                  }
              }
              hit.collider.enabled = false;
          }
      }
  }
  
  
  
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Swipe controls error "Cannot implicitly convert type 'UnityEngine.Touch' to 'Touch' " 1 Answer
How to accept swipe input when already touching with one finger. 0 Answers
Using Input.GetAxis variable for Touch Controls 1 Answer
when i drag my finger on mobile screen gameobject move left or right but not follow my finger 1 Answer
Touch controls 0 Answers