2016-03-20 11 views
1

'da çalışmak üzere çoklu dokunma elde edilemediğinden, çok sayfalı kod yazımının neden çalışmadığını hala anlayamıyorum. Bu benim kodum. Ve sormadan önce: Tüm değişkenler var.Bir çözüm aradıktan sonra Unity3D

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); 
       } 
      } 
     } 
    } 
} 

Her defasında yalnızca bir girişi kaydeder. Evet, telefonum çoklu dokunmayı destekliyor. Her türlü yardım için minnettar olacağım.

+0

Basitçe eklemek (debug.log kullanmak veya ekrandaki bir Text varsa ve orada geliştirme bilgi yazmak, dev.text = "blah") giriş yaparak gelecekte bu tür sorunları çözebilir unutmayın Kodunuzu hata ayıklamak için Debug.Log satırları. ... – Fattie

cevap

1

Sorununuz çok basit!

"0" adlı bir "i" olması gerekiyordu. Hepsi bu kadar. Sen i ile içinde döngü

...

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

bazen doğru

 GetTouch(i) 

bakın ama diğer zamanlarda yanlış neyse hepsi bu

GetTouch(0) 

bakın bu!

sen giderken kolayca

+0

Oooooh'yu çabucak bulabilirsin, şimdi çok aptalım! – Klausar

+0

hiç değil, sadece bir hata. "dokunma" yapmak çok zor. Not - aslında bir sorun yaşayacaksınız ** aslında "dokunma" uygun değil! Bunu kullanırsanız, düğmelerinizde ve diğer UI öğelerinizde dokunmaz. Bugünlerde bunu yapmak zorundasınız ... ** uzun açıklama http://stackoverflow.com/q/36048106/294884 – Fattie

İlgili konular