- Home /
button multitouch help
hello im brand new to this method, and fairly new to unity scripting so i have no idea where to start. the problem is that only the first touch is used, i cant touch 2 buttons at once, i can see the flaw in the logic but dont know how to fix it. heres the code
var count : int = Input.touchCount;
for(var i: int = 0;i < count; i++)
{
var touch : Touch = Input.GetTouch(i);
//steering
if(Rect(Screen.width*0.05,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position))
{
//left && touch.phase == TouchPhase.Stationary
steerAmount = -1;
}
else if (Rect(Screen.width*0.3,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position)){
//right
steerAmount = 1;
}
else{
steerAmount = 0;
}
//accel
if(Rect(Screen.width*0.8,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position))
{
motorAxis = 1.0;
}
else if(Rect(Screen.width*0.8,Screen.height*0.65,Screen.width*0.15,Screen.height*0.15).Contains(touch.position))
{
motorAxis = -0.9;
}
else{
motorAxis = 0;
}
}
thanks
Answer by Tegleg · Oct 20, 2014 at 02:58 PM
guess ill answer myself, heres how
//steering if(Rect(Screen.width*0.05,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position)) { //left && touch.phase == TouchPhase.Stationary if (touch.phase == TouchPhase.Began){ steerAmount = -1; } else if (touch.phase == TouchPhase.Ended){ steerAmount = 0; }
}
if (Rect(Screen.width*0.3,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position)){
//right
if (touch.phase == TouchPhase.Began){
steerAmount = 1;
}
else if (touch.phase == TouchPhase.Ended){
steerAmount = 0;
}
}
//accel
if(Rect(Screen.width*0.8,Screen.height*0.1,Screen.width*0.15,Screen.height*0.15).Contains(touch.position))
{
if (touch.phase == TouchPhase.Began){
motorAxis = 1.0;
}
else if (touch.phase == TouchPhase.Ended){
motorAxis = 0;
}
}
if(Rect(Screen.width*0.8,Screen.height*0.3,Screen.width*0.15,Screen.height*0.15).Contains(touch.position))
{
if (touch.phase == TouchPhase.Began){
motorAxis = -1.0;
}
else if (touch.phase == TouchPhase.Ended){
motorAxis = 0;
}
}
Your answer
Follow this Question
Related Questions
Multitouch on Windows 7? 7 Answers
Unity Remote 3 and accessing multiple Input.touches? 3 Answers
Car MultiTouch Controls 0 Answers
Multi-touch problem in a 2 player pong game 2 Answers
multi-touch problem in the " Space Shooter to Mobile" tutorial 0 Answers