2016-03-20 10 views
1

nach der Suche nach einer Lösung Ich kann immer noch nicht herausfinden, warum mein Multitouch-Skript in der Einheit nicht funktioniert. Das ist mein Code. Und bevor Sie fragen: Alle Variablen existieren.Kann Multitouch nicht in Unity3D arbeiten

void Update() 
{ 
    if (Input.touchCount > 0) 
    { 
     for (i = 0; i < Input.touchCount; i++) 
     { 
      if (Input.GetTouch(i).phase != TouchPhase.Ended) 
      { 
       hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero); 
       if (hit.collider != null && hit.transform.gameObject.tag == "Links") 
       { 
        cannon.GetComponent<Rigidbody2D>().MovePosition(cannon.GetComponent<Rigidbody2D>().position + new Vector2(-0.1f, 0) * Time.deltaTime * moveSpeed); 
       } 
       else if (hit.collider != null && hit.transform.gameObject.tag == "Rechts") 
       { 
        cannon.GetComponent<Rigidbody2D>().MovePosition(cannon.GetComponent<Rigidbody2D>().position + new Vector2(0.1f, 0) * Time.deltaTime * moveSpeed); 
       } 
      } 



      if (Input.GetTouch(i).phase == TouchPhase.Began) 
      { 
       hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero); 
       if (hit.collider != null && hit.transform.gameObject.tag == "Fire") 
       { 
        clone = Instantiate(projectile, cannon.transform.position + new Vector3(0, 1.3f, 0), transform.rotation) as Rigidbody2D; 
        clone.velocity = new Vector2(0, speed); 
       } 
      } 
     } 
    } 
} 

Es registriert nur jeweils einen Eingang. Ja, mein Telefon unterstützt Multitouch. Ich werde jede Art von Hilfe zu schätzen wissen.

+0

einfach hinzufügen Debug.Log Zeilen, um Ihren Code zu debuggen. ... wirst du schnell das Problem finden – Fattie

Antwort

1

Ihr Problem ist sehr einfach!

Sie haben eine "0" wo Sie ein "i" haben sollten. Das ist alles.

Sie mit i zu durchlauf ...

for (i = 0; i < Input.touchCount; i++) 

manchmal finden Sie richtig

 GetTouch(i) 

aber zu anderen Zeiten beziehen Sie falsch

GetTouch(0) 

zum Glück das ist alles es ist!

Vergessen Sie nicht, dass Sie leicht solche Probleme in der Zukunft, indem Sie lösen können, wie Sie gehen (debug.log verwenden, oder, haben einen Text auf dem Bildschirm und schreiben dort Ihre Entwicklung Info, dev.text = "blah")

+0

Oooooh danke, ich fühle mich jetzt so dumm! – Klausar

+0

gar nicht, nur ein Fehler. tun "touch" ist sehr schwierig. Hinweis - Sie werden ein Problem haben **, dass eigentlich "Touch" veraltet ist! Wenn Sie es verwenden, blockiert es nicht berührt Ihre Tasten und andere UI-Elemente. heutzutage musst du das machen ... ** lange erklärung http://stackoverflow.com/q/36048106/294884 – Fattie