【发布时间】:2020-08-28 01:21:47
【问题描述】:
有没有办法在手指按住屏幕时发生某些事情。
我要做的是将手指放在屏幕上并使对象旋转(仅限 Y 轴),而手指仍在屏幕上。当手指抬起时旋转应该停止。
这是我的代码:
using UnityEngine;
public class RotateObs : MonoBehaviour
{
public float rotateSpeed;
private void Update()
{
if(Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime);
}
}
}
}
我希望对象应该在我的手指(在 PC 上也可以使用鼠标)在屏幕上时旋转。
发生的情况是 - 它仅旋转 1 帧然后停止。它像单击一样注册它,无论我的手指是否仍在屏幕上。
我很确定我做错了,我只是看不到哪里。
【问题讨论】:
-
如果有帮助,有一个 gamedev stackexchange 论坛,那里有很多统一问题。
-
我不知道。我会进一步研究它。谢谢。
-
它只旋转一帧的原因是你只是在测试触摸何时开始。您需要一个不同的事件来检查手指是否仍在屏幕上(正如其他人回答的那样)。触摸阶段在初始触摸后更改下一帧。如果您想确保它在您触摸时开始旋转而不是延迟一帧,则可以检查开始/静止。