- Home /
Convert Mouse Input to Touch Input
Hello everyone, I am having a bit of trouble trying to transform my code to use touch inputs.
First of all, my game is working with mouse functions also on mobile, but I get some warnings when exporting the project, so I would like to get rid of them and make something "cleaner".
I have some objects and the goal is to swap 2 objects if one is dragged towards another one. My working code using mouse functions is this (it is attached to every object involved in the possible swap):
void OnMouseOver(){
if (Input.GetMouseButtonDown (0))
pressed = true;
}
void OnMouseExit() {
if(pressed){
pressed = false;
screenPoint = Camera.main.WorldToScreenPoint (gameObject.transform.position);
Vector3 currentScreenPoint = new Vector3 (screenPoint.x, Input.mousePosition.y, screenPoint.z);
if (currentScreenPoint.y < screenPoint.y && num < 9) {
masterScript.SwapPlayerBlocks (num, num + 1);
}
else if (currentScreenPoint.y > screenPoint.y && num > 0) {
masterScript.SwapPlayerBlocks (num, num - 1);
}
}
}
I tried to modify the code to make it work for touch and I came up with something like this:
void Update(){
foreach (Touch touch in Input.touches){
if (guiTexture.HitTest (touch.position))
pressed = true;
else if (!guiTexture.HitTest (touch.position)){
if(pressed){
pressed = false;
screenPoint = Camera.main.WorldToScreenPoint (gameObject.transform.position);
if (touch.position.y < screenPoint.y && num < 9) {
masterScript.SwapPlayerBlocks (num, num + 1);
}
else if (touch.position.y > screenPoint.y && num > 0) {
masterScript.SwapPlayerBlocks (num, num - 1);
}
}
}
}
}
But this doesn't seem to work... where could the problem be? Is it the good way to achieve what I need?
Your answer
Follow this Question
Related Questions
Convert Touch input to Mouse input C#? 1 Answer
How to make responsive Touch inputs? 1 Answer
Simulate touch with mouse 6 Answers
Mobile game touch problem (C#) 2 Answers