Ограничить движение мыши в пределах 2 точек - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть круговой спрайт, который я хочу перемещать только между 2 пустыми игровыми объектами (точками). Используя Vector3.Lerp () я могу перемещать круг между этими точками

void FixedUpdate()
{
    float speed = 10 * Time.deltaTime;
    float current = Mathf.PingPong(Time.time * speed, 1.0f);
    transform.position = Vector3.Lerp(startPoint.position, endPoint.position, current);
}

Выход: What I currently have with lerp

Проблема:

Я хочу переместить этот круг с помощью перетаскивания мышью (в основном, как ползунок из точки a в точку b), и как только мышь покидает круг, чтобы прекратить его перемещение

Что я пробовал:

  • Я попытался добавить игровой объект с коллайдером между двумя точками и использовать триггеры, чтобы определить, когда круг выходит из триггера. (OnTriggerExit2D), но это решение работает только тогда, когда круг полностью покидает коллайдер (чего я не хочу). Я хочу, чтобы круг двигался так же, как и в настоящее время, с помощью Vector3.Lerp, но с помощью мыши

  • Я пытался привязать круг только к одной оси и переместить его. Хотя это сработало, оно не сработало, когда я повернул весь ползунок, так как он заблокирован только на одной оси, и вращение не меняет это

  • Я также попытался внедрить положение мыши в функцию Vector3.Lerp, но безуспешно Vector3.Lerp(startPoint.position, endPoint.position, mousePosition.x);

    Я пытался с помощью y и z, все это не удалось. И этот способ не будет работать, когда я поверну ползунок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...