2017-01-17 2 views
2

Точно так же как Input.GetKey() для клавиатуры есть какой-либо способ непрерывного ввода с кнопки пользовательского интерфейса event triggerOnPointerDown? Потому что для управления движением с анимацией это дает очень странный результат? Я должен щелкнуть его снова и снова, чего я не хочу!Непрерывный вход от eventTrigger OnPointerDown

И если ответ отслеживание вручную, то как это сделать?

ответ

3

Вы можете сделать это с помощью функций OnPointerDown и OnPointerUp, а затем использовать простую логическую переменную для сохранения состояний. Затем вы можете проверить прессу в функции «Обновить».

public class YourCode : MonoBehaviour, IPointerDownHandler, IPointerUpHandler 
{ 
    bool pointerDown = false; 

    public void OnPointerDown(PointerEventData eventData) 
    { 
     pointerDown = true; 
    } 

    public void OnPointerUp(PointerEventData eventData) 
    { 
     pointerDown = false; 
    } 

    void Update() 
    { 
     if (pointerDown) 
     { 
      //Your Code 
     } 
    } 
} 
+1

Должен ли я прикрепить этот скрипт ко всем сенсорным кнопкам один за другим, у которых есть компонент «Eventtrigger», подключенный к нему и используя функции «OnPointerDown» и «OnPointerUp»? – utkdub

+1

И каждый сценарий должен иметь ** конкретный ** код в 'Update()' в соответствии с конкретной кнопкой, которая использует 'OnPointerDown' и' OnPointerUp'? @Programmer – utkdub

+0

Он должен быть прикреплен к каждой кнопке пользовательского интерфейса. Поэтому приложите сценарий YourCode выше к каждой кнопке пользовательского интерфейса. Поместите код, который вы хотите запустить внутри кода 'if (pointerDown). Он будет вызываться в каждом кадре, пока не будет выпущен. – Programmer

0

no.

Необходимо вручную отслеживать события. Использование EventTrigger так же хорошо, как и получается.

+0

Вручную отслеживать события? – utkdub

+0

как сделать это @Doug? – utkdub

+1

plz дать некоторую информацию – utkdub

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