2015-04-22 5 views
2

Моя проблема в том, что я управляю объектом по оси Y, прикоснувшись к нему, но когда я мультитач на экране и снимаю первое касание, игровой объект прыгает с позиции первого касания до вторая касающаяся позиция.Как заблокировать переходы с несколькими касаниями в Unity

Я хочу, чтобы, хотя игрок снимает первый прикосновение, движение объекта продолжается, как первое касание.

Как его решить?

Мой код:

void Update() { 

     if (die == true) 
      return; 
     if(Input.GetMouseButtonUp(0)){ 
      point = transform.position; 
      click = false; 
     } 
     if (Input.GetMouseButton(0)) { 
      ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); 
      last = ray.GetPoint(1); 
      if(click==false){ 
       click=true; 
       first = last; 
      } 
      transform.position = new Vector2(0, point.y + last.y - first.y); 
     } 

    } 
+2

Ваш код даже не мультитач. Чтобы использовать multitouch, вы должны использовать Input.touches – SteakOverflow

+0

Я использую touchCount вместо GetMouseButton (0), но результат не изменяется –

ответ

0

Как уже упоминалось SteakOverlow, если вы используете коснуться конкретного кода вам гораздо более полезные методы работы.

При наступлении контакта вы можете использовать Input.GetTouch (0) , чтобы получить структуру Touch. Эта структура содержит много полезной информации о прикосновении. Например, fingerID, чтобы вы знали, какой палец используется и фаза, что позволяет вам узнать, какое касание означает, что в данный момент находится палец. Если фаза «закончена», вы можете сохранить последнее положение пальца, а затем разрешить следующий палец продолжит операцию со смещением от последнего пальца к новому пальцу.

Смежные вопросы