Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只要按下inspector中的按钮,unity就会运行一个功能_C#_Function_Unity3d_Uibutton - Fatal编程技术网

C# 只要按下inspector中的按钮,unity就会运行一个功能

C# 只要按下inspector中的按钮,unity就会运行一个功能,c#,function,unity3d,uibutton,C#,Function,Unity3d,Uibutton,我是Unity的新手 使用Unity Inspector,我设置了一个按钮,用于回调函数(OnClick),它工作正常,但只有一次,要再次启动操作,我需要释放并再次单击该按钮 我怎样才能确保只要按下按钮,该功能就会反复运行?(像机关枪一样) 问候 单击OnClick无法执行此操作。使用OnPointerDown和OnPointerUp。在这些函数中将布尔变量分别设置为true/false,然后在Update函数中检查该布尔变量 附加到UI按钮对象: public class UIPresser

我是Unity的新手

使用Unity Inspector,我设置了一个按钮,用于回调函数(OnClick),它工作正常,但只有一次,要再次启动操作,我需要释放并再次单击该按钮

我怎样才能确保只要按下按钮,该功能就会反复运行?(像机关枪一样)


问候

单击
OnClick
无法执行此操作。使用
OnPointerDown
OnPointerUp
。在这些函数中将布尔变量分别设置为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);
    }
}

您可以找到其他事件函数。

单击
OnClick
无法执行此操作。使用
OnPointerDown
OnPointerUp
。在这些函数中将布尔变量分别设置为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);
    }
}

您可以找到其他事件函数。

我的答案解决了您的问题吗?我的答案解决了您的问题吗?