【发布时间】:2021-01-02 12:30:05
【问题描述】:
我正在 Unity3D 上制作游戏。如图所示,立方体应该移动到某个位置,我实现了这个,但是当我点击屏幕时出现问题,它一次移动了几个位置,我用Debug测试了这种情况。日志(我还附上了照片),可以看到,一键触发多次,如何解决?
附:还可以建议如何在某个坐标中添加立方体的运动平滑度,通过 transform.forward 尝试,但无法弄清楚如何在正确的坐标处停止它。
private void Update()
{
CubePosUp_Z = transform.position.z - 0.7f;
CubePosDown_Z = transform.position.z + 0.7f;
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.position.y > Screen.height / 2)
{
tempUp = 1;
tempDown = 0;
}
else
{
tempUp = 0;
tempDown = 1;
}
if (tempUp == 1 && tempDown == 0)
{
UpTran();
}
else if (tempUp == 0 && tempDown == 1)
{
DownTran();
}
}
}
void UpTran()
{
Debug.Log("Up");
if (CubePosUp_Z <= -1.4)
{
transform.Translate(0, 0, 0, Space.World);
}
else if (CubePosUp_Z > -1.4)
{
transform.Translate(0, 0, -0.14f, Space.World);
}
}
void DownTran()
{
if (CubePosDown_Z >= 1.4)
{
transform.Translate(0, 0, 0, Space.World);
}
else if (CubePosDown_Z < 1.4)
{
transform.Translate(0, 0, 0.14f, Space.World);
}
}
【问题讨论】:
-
我建议你上 YouTube 并在触摸屏控件上观看 Brackey 的视频
-
您对
transform.Translate(0, 0, 0, Space.World);行的期望是什么?使用距离为 .. 什么都没有的物体有什么用? ^^