| 
				
				Определение точки нажатия на экран
				 | 
 | 
| tduk | Дата: Суббота, 09 Июня 2018, 13:49 | Сообщение # 1 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | Нужно определять точку нажатия на экран в координатах Х и У. Пробовал сделать по этому уроку ITVDN Точка определялась где-то оочень далеко за границами экрана( Я спавнил в этом месте объект) Что Я делаю не так? Или как можно реализовать это по-другому?
 Код using UnityEngine; using UnityEngine.EventSystems;
  public class script : MonoBehaviour,IPointerDownHandler
  {     public GameObject soldier1;
      public void OnPointerDown(PointerEventData eventData)
      {
          Debug.Log(eventData.position);         Instantiate(soldier1, eventData.position, Quaternion.identity);
      }
  } 
  
  Алгоритм такой:  1) В игре жму на экран 2) надо спавнить в этой точке объект
  Проблема: Он спавнится где-то в "Кукуево"   
  Подозреваю, что можно как-то через локальные координаты сделать это, т к щас локальные используются как глобальные.
 
  
 
 Сообщение отредактировал tduk - Понедельник, 11 Июня 2018, 23:57  |  
| 
 | 
 |    | 
| seaman | Дата: Суббота, 09 Июня 2018, 13:54 | Сообщение # 2 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | Цитата  Что Я делаю не так?  А как ты делаешь?
 |  
| 
 | 
 |    | 
| tduk | Дата: Понедельник, 11 Июня 2018, 19:57 | Сообщение # 3 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | seaman, Делал, как в том уроке(ссылка в шапке). Вешал на отдельный объект, вешал на камеру. Одно и то же все время(
 
  
 |  
| 
 | 
 |    | 
| vladhad22 | Дата: Понедельник, 11 Июня 2018, 20:23 | Сообщение # 4 |  
 
участник 
Сейчас нет на сайте 
 
 | tduk, Цитата seaman (  )   А как ты делаешь?  Этот вопрос значит, что чтобы помочь, нужно как минимум видеть ваш код. Вы скинули решение без ошибок, в то время как у вас есть ошибки.
  Prepare for unforeseen consequences
 |  
| 
 | 
 |    | 
| tduk | Дата: Понедельник, 11 Июня 2018, 23:57 | Сообщение # 5 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | seaman, vladhad22, исправил
 
  
 |  
| 
 | 
 |    | 
| seaman | Дата: Вторник, 12 Июня 2018, 11:11 | Сообщение # 6 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | eventData.position измеряется в экранных координатах (т.е. пикселях). Instantiate использует мировые координаты.
  Следовательно что нужно сделать? Преобразовать из экранных в мировые https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html
 |  
| 
 | 
 |    | 
| Wite | Дата: Вторник, 12 Июня 2018, 14:46 | Сообщение # 7 |  
| 
 постоянный участник 
Сейчас нет на сайте 
 
 | New Piskel(Clone)      
 |  
| 
 | 
 |    |