2017-09-22 10 views
0

は私が機能(クリック時)にコールバックを作るボタンの設定を持っているユニティインスペクタを使用してユニティ団結が

で初心者だ限り、ボタンがインスペクタに押される機能を実行し、それがうまく動作しますが、一度だけアクションを再開する必要があります。解放してもう一度ボタンをクリックする必要があります。

...

public void MoveLeft () 
{ 
    transform.RotateAround(Camera.main.transform.position, Vector3.up, -rotation/4 * Time.deltaTime); 
    infopanel.RotateAround(Camera.main.transform.position, Vector3.up, -rotation/4 * Time.deltaTime); 
} 

よろしく(機関銃のような)

+0

私の回答はあなたの問題を解決しましたか? – Programmer

答えて

1

OnClickはこれを行うことはできません。 OnPointerDownOnPointerUpを使用してください。その後、

がUI ButtonオブジェクトにアタッチUpdate機能でそのブール変数をチェックし、それぞれこれらの機能に真/ falseにブール変数を設定します。

public class UIPresser : MonoBehaviour, IPointerDownHandler, 
    IPointerUpHandler 
{ 
    bool pressed = false; 

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

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

    void Update() 
    { 
     if (pressed) 
      MoveLeft(); 
    } 

    public void MoveLeft() 
    { 
     transform.RotateAround(Camera.main.transform.position, Vector3.up, -rotation/4 * Time.deltaTime); 
     infopanel.RotateAround(Camera.main.transform.position, Vector3.up, -rotation/4 * Time.deltaTime); 
    } 
} 

あなたは他のイベント関数hereを見つけることができます。