如何根据触摸输入旋转 2D 游戏对象?

How to rotate a 2D GameObject based on touch inputs?

我想找到一种使用触摸和拖动输入在 Z 轴上旋转 2D 游戏对象的方法。我已经找到了很多解决方案,但是大多数都是写在JavaScript 不能解决我的问题。

根据统一文档,您可以使用 Input.GetTouch();

https://docs.unity3d.com/ScriptReference/Input.GetTouch.html

和拖动处理程序:

https://docs.unity3d.com/ScriptReference/EventSystems.IDragHandler.html

我终于找到了解决我的问题的方法,这个代码有效我已经在我的设备上测试了它,它是完美的:

public class rotate : MonoBehaviour
{
public float speed;
Vector2 pos;
private void Start()
{
    speed = 100;
}
private void Update()
{

    if (Input.touchCount > 0)
    {
        Touch touch = Input.GetTouch(0);
        Vector2 posInScreen = touch.position;

        if (Camera.current.ScreenToWorldPoint(posInScreen) != null)
        {
             pos = Camera.current.ScreenToWorldPoint(posInScreen);
        }
        float Xposition = pos.x;
        transform.rotation = Quaternion.Euler(0, 0, Xposition*speed);



    }
}
}