C# 地平面阶段旋转子对象

C# 地平面阶段旋转子对象,c#,unity3d,C#,Unity3d,在我的项目中,我有一个带有子对象的地平面舞台。现在我想用一个UI按钮旋转这个对象。如果我按住按钮,它应该旋转,如果我松开按钮,旋转应该停止。不幸的是,我无法做到这一点 这是我的剧本: public class RotateObject : MonoBehaviour { public float rotationSpeed = 45f; public bool isPressed = false; public void TogglePressed(bool value

在我的项目中,我有一个带有子对象的地平面舞台。现在我想用一个UI按钮旋转这个对象。如果我按住按钮,它应该旋转,如果我松开按钮,旋转应该停止。不幸的是,我无法做到这一点

这是我的剧本:

public class RotateObject : MonoBehaviour
{
    public float rotationSpeed = 45f;
    public bool isPressed = false;

    public void TogglePressed(bool value)
    {
        isPressed = !isPressed;
    } //edit added missing Brace

    void Update()
    {
        if (isPressed)
        {
            transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
        }
    }
}
我在按钮上添加了
事件触发器
,其中
指针向下
指针向上
。 脚本被附加到我的游戏对象上,
TogglePressed
功能链接到
指针向下
,并选中复选框,链接到
指针向上
,此处复选框未选中

如果我在Unity中测试它并单击按钮,检查器会显示它可以工作,但是如果我将它上传到手机,则对象不会旋转

编辑:

Input.GetMouseButtonDown()

}

Input.GetButtonDown()

EDIT2:

这是我现在使用的脚本:

public class RoatateObject : MonoBehaviour
{
    public float rotationSpeed = 45f;

    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
           transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
        }
    }
}

我不知道手机上是否识别pointerdown,您是否尝试过Input.GetMouseButtonDown()(在手机上也是触发器)


也许为了加快测试速度,如果我使用
Input.GetMouseButtonDown()
我需要使用
OnClick
事件,请尝试测试本地而不是上传到手机,对吗?不,你不需要使用OnClick:或者如果我使用
Input.GetButtonDown()
什么都不会发生,甚至我的
Debug.Log
也不会显示。如果我使用
指针向下
将显示我的
Debug.Log
。所以我认为
指针向下
在手机上是可以识别的。请参阅我的编辑。我使用Fire1并将按钮命名为旋转Fire1ok谢谢,请从if语句中删除isPressed,我想这将永远不会再切换。(基于对其他代码部分缺乏了解)。
void Update()
{
    if(isPressed && Input.GetButtonDown("Fire1"))
    {
        //Same Code
    }
}
public class RoatateObject : MonoBehaviour
{
    public float rotationSpeed = 45f;

    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
           transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
        }
    }
}