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