@max_vr

Как правильно в unity назначить родительский объект после Instantiate?

Добрый вечер!
Такая задача: работаю сейчас с drag&drop через event trigger, нужно чтоб по началу перетаскивания создавалась копия объекта, в определенной ветке иерархии, которая и будет следовать за курсором.
Делаю так:
public void onModelBeginDrag(GameObject model){
		movedModel =  Instantiate (model as GameObject);
		movedModel.transform.SetParent (wall1.transform);

public void onModelDrag(){
		movedModel.transform.position = Input.mousePosition;
	}
	}

После чего появляется странный баг (скорее следствие кривизны моих рук):
В инспекторе координаты объекта считаются относительно якорей (как и должно быть), но при этом, когда пытаюсь получить координаты из кода с помощью object.transform.position , то они считаются от левого нижнего угла экрана. Что не так я сделал? На скрине координаты одно и того же объекта в инспекторе, и полученные из transform.posotionb3387e9e2b814e05ac41d1bfa1ead350.png
Заранее спасибо.
  • Вопрос задан
  • 602 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Input.mousePosition возвращает координаты мышки в пикселях и зависит от разрешения экрана. В зависимости от настроек CanvasScaler эти координаты могут и не совпадать с локальными координатами канваса. Для получения правильного положения мыши используйте RectTransformUtility.ScreenPointToWorldPointInRectangle и RectTransformUtility.ScreenPointToLocalPointInRectangle. А ещё лучше не обращаться к мышке напрямую, а использовать событийную систему через IDragHandler, тогда координаты всегда будут правильные, в документации даже есть пример с перетаскиванием.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Ну потому что transform.position и возвращает от левого нижнего угла. А в инспекторе вы смотрите не transform, а rectTransform - это разные структуры данных, и значения тоже разные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы