화합

2017-09-22 2 views
0

나는 내가 함수 (의 OnClick)에 콜백을 만드는 버튼 설정을 가지고 유니티 관리자를 사용하여 유니티화합

에 안돼서 한 버튼은 관리자에 누르면 기능을 실행 잘 작동하지만, 한 번만 작동을 다시 시작합니다. 버튼을 다시 놓고 클릭해야합니다.

버튼을 누르고있는 동안 계속 기능을 계속 실행할 수 있습니까? ...

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 버튼 객체에 부착합니다 Update 기능에 그 부울 변수를 확인 각각이 기능에 참/거짓에 부울 변수를 설정 :

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을 찾을 수 있습니다.