2017-01-17 5 views
2

Genau wie Input.GetKey() für die Tastatur gibt es eine Möglichkeit, kontinuierliche Eingabe von UI-Taste EreignisauslöserOnPointerDown? Weil für Bewegungssteuerungen mit Animation es sehr merkwürdige Ausgabe gibt? Ich muss es immer wieder anklicken was ich nicht möchte!Kontinuierliche Eingabe von eventTrigger OnPointerDown

Und wenn die Antwort ist manuell Tracking dann wie man das macht?

Antwort

3

Sie können dies mit den Funktionen OnPointerDown und OnPointerUp dann verwenden Sie eine einfache boolesche Variable, um die Zustände zu halten. Sie können dann die Presse in der Update-Funktion überprüfen.

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

Muss ich dieses Skript an alle Touch-Tasten eins nach dem anderen, die 'Eventtrigger' Komponente angeschlossen haben und mit' OnPointerDown' und 'OnPointerUp' Funktionen? – utkdub

+1

Und sollte jedes Skript einen ** spezifischen ** Code in 'Update()' haben, abhängig von der spezifischen Schaltfläche, die 'OnPointerDown' und' OnPointerUp' verwendet? @Programmer – utkdub

+0

Es sollte jedem UI Button beigefügt werden. Fügen Sie das YourCode-Skript oben an jede UI-Schaltfläche an. Setzen Sie den Code, den Sie ausführen möchten, in den Code 'if (pointerDown) '. Es wird in jedem Frame aufgerufen, bis es freigegeben wird. – Programmer

0

nein.

Sie müssen die Ereignisse manuell verfolgen. EventTrigger ist so gut wie es geht.

+0

Die Ereignisse manuell verfolgen? – utkdub

+0

Wie macht man das @Doug? – utkdub

+1

plz geben einige Informationen – utkdub

Verwandte Themen