只要在检查器中按下按钮,统一就会运行一个功能

时间:2017-09-22 23:03:31

标签: c# function unity3d uibutton

我是Unity的新手

使用Unity Inspector我已经设置了一个回调函数的按钮(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);
}

问候......

1 个答案:

答案 0 :(得分:2)

OnClick不能这样做。使用OnPointerDownOnPointerUp。在这些函数中分别设置一个布尔变量为true / false,然后检查Update函数中的布尔变量

附加到UI按钮对象:

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