2017-01-15 2 views
0

Почему этот код ничего не печатает после касания?Raycast не ударил объект

void Update() 
{ 
    if (Input.touchCount > 0) 
    { 
     RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero); 
     if (hit) 
     { 
      print(hit.transform.name); 
     } 
    } 
} 
+0

Потому что хочет, чтобы вы дать нам больше информации. Например. у объектов, которые вы пытаетесь поразить с помощью raycast, есть какой-то коллайдер 2d, возможно, они будут настроены игнорировать raycast? –

+0

Какой тип объекта вы пытаетесь ударить? Поставить снимок экрана, пока он будет выбран, было бы полезно. Кроме того, поместите 'print (« внутреннее касание »);' in 'if (Input.touchCount> 0)'. Вы должны сказать нам, что не работает в коде. – Programmer

+0

Также вы не должны искать имя игрового объекта, к которому привязано преобразование? Так что-то вроде 'hit.transform.gameObject.name'? – UnholySheep

ответ

-1

Попробуйте это:

if (Input.touchCount > 0) 
    { 
     RaycastHit2D hit; 

     if (Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero, out hit)) 
     { 
      print(hit.transform.name); 
     } 
    }