Вторник, 26 Ноября 2024, 04:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Определение точки нажатия на экран
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) :D :D :D
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг