Unity:如何通过拖动触摸来旋转第一人称相机?

时间:2019-05-17 15:21:19

标签: unity3d rotation touch

也许值得一提的是,我正在使用Fingers资产进行触摸/鼠标操作。

好的,所以我有一个带有第一人称相机的转塔,在PC上,当我在相机周围移动鼠标时,它使用的是Mouse X / Y轴。但是我需要Mobile配合Mouse X / Y轴使用触摸来拖动相机。

我需要帮助的是: 当我的手指在屏幕上拖动以移动相机的旋转位置时。该位置由车辆修改。

这是我用于PC第一手移动鼠标的代码:

 x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
 y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;

 Quaternion rotation = Quaternion.Euler(y, x, 0f);

 turretHeadToMove.rotation = rotation;

如何使用触摸拖动来移动旋转?而不是鼠标?

对此有任何帮助吗?谢谢


这是触摸的当前代码

if (Input.touchCount > 0)
{
    if (Input.GetTouch(0).phase == TouchPhase.Moved)
    {
        Touch touch = Input.GetTouch(0);
        x += touch.deltaPosition.x * xSpeed * 0.02f;
        y -= touch.deltaPosition.y * ySpeed * 0.02f;

        Quaternion rotation = Quaternion.Euler(y, x, 0f);

        turretHeadToMove.rotation = rotation;
    }
}

1 个答案:

答案 0 :(得分:1)

对于触摸,您可以使用

  

Input.GetTouch(0).deltaPosition

尝试使用以下方法弄弄一些东西:

float strength = 2;

if (Input.touchCount == 1) { 
  if (Input.GetTouch(0).phase == TouchPhase.Moved)
  {
    Vector2 touchDirection = Input.GetTouch(0).deltaPosition;
    // Update ur transform.Rotate the way u desire
    // Different depending on using 1st person, 3rd person etc.
  }
}