Question by 
               Aterox_os · Aug 05, 2020 at 06:49 PM · 
                c#2d gameplayer movementtouch controls  
              
 
              Unity 2D Controller when active ignore another click
Hey guys, i made a simple 2D game in Unity and I have made a simple controller. When i click on the display appears where i clicked and then when i release it disappears. How can i detect if the controller is already somewhere and if so then tell it not to do anything. can someone change my code to do this? Here is my code:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class Joystick : MonoBehaviour
 {
     public Transform player;
     public float speed = 5.0f;
     private bool touchStart = false;
     private Vector2 pointA;
     private Vector2 pointB;
 
     public Transform circle;
     public Transform outerCircle;
 
     // Update is called once per frame
     void Update()
     {
         if (Input.GetMouseButtonDown(0))
         {
             pointA = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
 
             circle.transform.position = pointA * 1;
             outerCircle.transform.position = pointA * 1;
             circle.GetComponent<SpriteRenderer>().enabled = true;
             outerCircle.GetComponent<SpriteRenderer>().enabled = true;
         }
         if (Input.GetMouseButton(0))
         {
             touchStart = true;
             pointB = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
         }
         else
         {
             touchStart = false;
         }
 
     }
     private void FixedUpdate()
     {
         if (touchStart)
         {
             Vector2 offset = pointB - pointA;
             Vector2 direction = Vector2.ClampMagnitude(offset, 1.0f);
             moveCharacter(direction * 1);
 
             circle.transform.position = new Vector2(pointA.x + direction.x, pointA.y + direction.y) * 1;
         }
         else
         {
             circle.GetComponent<SpriteRenderer>().enabled = false;
             outerCircle.GetComponent<SpriteRenderer>().enabled = false;
         }
 
     }
     void moveCharacter(Vector2 direction)
     {
         player.Translate(direction * speed * Time.deltaTime);
     }
 }
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                