Size: a a a

2021 February 19

ВС

Влад Солодуха... in unity3d.ru
🐸Гринирский🐸
В старте драга запоминаешь расстояние от камеры до объекта, берешь координату мыши через ScreenToWorldPoint с этой дальностью в Z и запоминаешь оффсет (между объектом и этой координатой).
В самом драге получаешь из мыши также координату, плюсуешь оффсет и ставишь туда объект.
посмотри, пожалуйста, правильно ли я понял первую часть решения, эта часть выполняется на старте драга. _currentCamera - это камера, которую я сейчас юзаю. position - переменная, которая сохраняет позицию клика мишкой на канве
источник

ВС

Влад Солодуха... in unity3d.ru
источник

🐸

🐸Гринирский🐸... in unity3d.ru
draggable - это this.transform, что ли?
источник

ВС

Влад Солодуха... in unity3d.ru
draggable - обьект, который я и собираюсь двигать. А Position - это его transform.position
источник

🐸

🐸Гринирский🐸... in unity3d.ru
У тебя же интерфейс драга на самом объекте и висит
источник

🐸

🐸Гринирский🐸... in unity3d.ru
Этот worldPoint ты так же будешь получать в самом драге
источник

ВС

Влад Солодуха... in unity3d.ru
🐸Гринирский🐸
У тебя же интерфейс драга на самом объекте и висит
Не совсем понимаю. Есть група элементов, реализующих интерфейс IDraggable, которые я хочу перемещать, тоесть им я буду передавать позицию, куда им нужно двигаться. А просчитываю я эту позицию в их родительском обьекте
источник

🐸

🐸Гринирский🐸... in unity3d.ru
И оффсет между векторами - это никак не флоат ))
источник

🐸

🐸Гринирский🐸... in unity3d.ru
Влад Солодуха
Не совсем понимаю. Есть група элементов, реализующих интерфейс IDraggable, которые я хочу перемещать, тоесть им я буду передавать позицию, куда им нужно двигаться. А просчитываю я эту позицию в их родительском обьекте
А это точно драг?
источник

ВС

Влад Солодуха... in unity3d.ru
Переделал. Это метод OnPointerDown, который я использую для начала драга.
источник

ВС

Влад Солодуха... in unity3d.ru
🐸Гринирский🐸
А это точно драг?
теперь в драге я должен "В самом драге получаешь из мыши также координату, плюсуешь оффсет и ставишь туда объект."?
источник

🐸

🐸Гринирский🐸... in unity3d.ru
источник

🐸

🐸Гринирский🐸... in unity3d.ru
Там три интерфейса: старт драга, сам драг, конец драга
источник

ВС

Влад Солодуха... in unity3d.ru
это реализовано уже.
источник

ВС

Влад Солодуха... in unity3d.ru
только кое-что изменено
источник

ВС

Влад Солодуха... in unity3d.ru
А именно, я использую OnPointerDown вместо OnBeginDrag. Работает он исправно
источник

🐸

🐸Гринирский🐸... in unity3d.ru
Ничего, что драг срабатывает только при сдвиге курсора, а не при таче/клике?
источник

ВС

Влад Солодуха... in unity3d.ru
Логику, что я кидал выше, я описываю в OnPointerDown, все верно сделал?
источник

🐸

🐸Гринирский🐸... in unity3d.ru
Нет, оффсет - вектор, дистанция - снаружи объявляется
источник

ВС

Влад Солодуха... in unity3d.ru
🐸Гринирский🐸
Ничего, что драг срабатывает только при сдвиге курсора, а не при таче/клике?
Я выводил дебаг логи, все работает как нужно. OnPointerDown работает единожды, когда я кликаю по экрану(опускаю палец на экран).
источник