Как перемещать 2D объект по оси на определенное количество координат заданное скриптом Unity
Мне нужно просто префаб квадрата изображения перемещать на определенное количество пунктов по оси Y, пробовал .transform.position.y+1, перемещается на произвольное количество пунктов. Я понимаю что все это вектора и т.д. Но неужели нельзя в 2D, просто перемещать указав след координату в int?
Ответы (1 шт):
Вы не можете двигать объект через transform.position.y += 1, потому что это, как вы сами и написали, вектор.
Можно менять позицию объекта напрямую (телепортация):
transform.position = new Vetor3(transform.position.x, 54); // Устанавливаем Y
transform.position += new Vector3(0, 10); // Увеличиваем Y на 10
Можно передвигать объект разными функциями (ссылки в конце):
transform.position = Vector3.MoveTowards(Vector3 from, Vector3 to, float step);
transform.Translate(Vector3 vector);
transform.position = Vector3.Lerp(Vector3 start, Vector3 target, float t);
GetComponent<Rigidbody>().AddForce(); // Если ваш объект физический
GetComponent<RectTransform>().anchoredPosition = new Vector3(...); // Если ваш объект - UI
Подробно эта тема освещалась пользователем Andrew здесь: Правильная реализация передвижения персонажа
Ссылки: Transform.Translate, Vector3.MoveTowards, Vector3.Lerp, RIgidbody.AddForce, RectTransform.anchoredPosition