Question by 
               alifianrc · Mar 15, 2020 at 07:49 PM · 
                onmousedowninput.touchonmouseup  
              
 
              Why my input both mouse and touch can't detected?
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class DragAndDropGame : MonoBehaviour { [SerializeField] private Transform animalPlace;
 private Vector2 initialPosition;
 private Vector2 mousePosition;
 private float deltax, deltay;
 public static bool locked = false;
 void Start()
 {
     initialPosition = transform.position;
     Debug.Log("Start Sucsess");
     Debug.Log(animalPlace.position.x);
     Debug.Log(animalPlace.position.y);
     Debug.Log(initialPosition.x);
     Debug.Log(initialPosition.y);
 }
 private void Update()
 {
     if (Input.touchCount > 0)
     //Touch firstTouch = Input.GetTouch(0);
     //if (firstTouch.phase == TouchPhase.Began)
     {
         Debug.Log("Input Beta Sucsess");
     }
    
     if (Input.touchCount > 0 && !locked)
     {
         Touch touch = Input.GetTouch(0);
         Vector2 touchPos = Camera.main.ScreenToWorldPoint(touch.position);
         Debug.Log("Input Sucsess");
         switch (touch.phase)
         {
             case TouchPhase.Began:
                 if (GetComponent<BoxCollider2D>() == Physics2D.OverlapPoint(touchPos))
                 {
                     deltax = touchPos.x - transform.position.x;
                     deltay = touchPos.y - transform.position.y;
                     Debug.Log("Began Sucsess");
                 }
                 break;
             case TouchPhase.Moved:
                 if (GetComponent<BoxCollider2D>() == Physics2D.OverlapPoint(touchPos))
                 {
                     transform.position = new Vector2(touchPos.x - deltax, touchPos.y - deltay);
                     Debug.Log("Moved Sucsess");
                 }
                 break;
             case TouchPhase.Ended:
                 if (Mathf.Abs(transform.position.x - animalPlace.position.x) <= 0.5f && Mathf.Abs(transform.position.y - animalPlace.position.y) <= 0.5f)
                 {
                     transform.position = new Vector2(animalPlace.position.x, animalPlace.position.y);
                     locked = true;
                     Debug.Log("End Sucsess");
                 }
                 else
                 {
                     transform.position = new Vector2(initialPosition.x, initialPosition.x);
                     Debug.Log("Lock Sucsess");
                 }
                 break;
         }
     }
 } 
   
 private void OnMouseDown()
 {
     Debug.Log("Mouse Down");
     if (!locked)
     {
         mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
         transform.position = new Vector2(mousePosition.x - deltax, mousePosition.y - deltay);
     }
 }
 private void OnMouseUp()
 {
     Debug.Log("Mouse Up");
     if (Mathf.Abs(transform.position.x - animalPlace.position.x) <= 0.5f && Mathf.Abs(transform.position.y - animalPlace.position.y) <= 0.5f)
     {
         transform.position = new Vector2(animalPlace.position.x, animalPlace.position.y);
         locked = true;
     }
     else
     {
         transform.position = new Vector2(initialPosition.x, initialPosition.x);
     }
 }
 
 
}
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
I want to only open the keyboard when im using an inputfield onmouseup not onmousedown 1 Answer
Click detection suddenly stopped working 1 Answer
OnMouseDown/Drag/ets is not being called in WebGL build 0 Answers
How do I use Input.GetButton, instead of OnMouse() 1 Answer
mouse event when frame loss 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                