@GingerSibe

Как реализовать перемещение на определенное расстояние от одной точки к другой?

Есть две точки и между ними расстояние равное 100 кликов, объект(игрок) находится на первой точке и мне нужно чтобы за один клин по экрану игрок двинулся ко второй точке на 1 пункт и находился на точке пока не произведу повторное нажатие. Я знаю только как реализоваться движение при помощи Lerp и MoveTowards, но при помощи их у меня выходит не то что мне требуется. Прошу помочь или подсказать как это можно реализовать?
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Вам отлично подходит MoveTowards. Работает он следующим образом:
1) Сначала он берёт первый аргумент - текущее положение объекта.
2) Затем берёт второй - место, куда объект стремится в итоге попасть.
3) Прокладывает путь между этими точками, после чего отмеряет на этом пути расстояние, равной третьей аргументе - шагу.
4) И возвращает местоположение, куда вам нужно переместить объект.
Плюс этого метода в том, что вы никогда не пройдёте дальше цели. Выглядеть это будет как-то так:

using UnityEngine;

public class ClickMoveExample : MonoBehaviour {

	public Transform target;
	public float moveDelta = 0.1f;

	void Update() {
		if (Input.GetMouseButtonDown(0))
			transform.position = Vector3.MoveTowards(transform.position, target.position, moveDelta);
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы