Объекты проходят сквозь объекты при перемещении предметов курсором в Unity 2D
Подскажите в чем может быть ошибка - при перемещении предметов курсором, они проходят один через другой. Ниже прилагаю код, который я использую:
void OnMouseDown()
{
offset = gameObject.transform.position -
Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f));
}
void OnMouseDrag()
{
Vector3 newPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f);
transform.position = Camera.main.ScreenToWorldPoint(newPosition) + offset;
}
Когда я перетаскиваю объект во время игры, объект проходит через другие объекты, если его бросить, он отскакивает от объектов и не проваливается. На объектах, которые можно перетаскивать, у меня стоят Rigidbody2D и Box Collider 2D, а на статичных объектах, например на полу, стоит только Box Collider 2D. Подскажите пожалуйста, как исправить.
Ответы (1 шт):
Ошибки нет, какую координату ты указал, туда он и перемещается. Иначе быть с transform не может.
А столкновение это уже вопрос физики и перемещать нужно по физике, а не "телепортацией". Тут либо предмет должен тянуться в направлении курсора через AddForce, либо создать упругую резинку между объектом и курсором через Join.