@Malis

Как сделать перемещение объекта мышью/пальцем?

Вот у меня есть панель (к примеру карта) мне нужно при удержании мыши её двигать, с какой скоростью я двигаю мышью с той же скоростью двигается и панель (и все что на ней соответственно), то же самое должно быть и если пальцем по экрану вести.
Только суть заключается в перемещении самой панели, не камеры, вот именно саму панель нужно двигать...
С камерой получается, а вот с панелью кручу и что-то не получается, то летает, то координаты -z уходит, подскажите как сделать?
if(Input.GetMouseButton(0)){
  Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1f);
  Vector3 objPosition = Camera.main.ScreenToWorldPoint(mousePosition);
  Panel.transform.position = objPosition;
  }

Двигается нормально, только вот при каждом новом нажатии панель центрируется, то есть там где я нажимаю мышкой там сразу устанавливается центр панели...
  • Вопрос задан
  • 2151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@au56
public class Movement : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    private Vector2 lastMousePosition;
    private Vector2 currentMousePosition;

    public void OnBeginDrag(PointerEventData eventData)
    {
        lastMousePosition = eventData.position;
    }

    public void OnDrag(PointerEventData eventData)
    {
        currentMousePosition = eventData.position;
        Vector2 difference = currentMousePosition - lastMousePosition;
        Vector3 newPosition = transform.position + new Vector3(difference.x, difference.y, transform.position.z);
        Panel.transform.position = newPosition;
        lastMousePosition = currentMousePosition;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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