如何根据触摸输入旋转 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);
}
}
}
我想找到一种使用触摸和拖动输入在 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);
}
}
}