我有下面的代码,可以在键盘中使用,但不适用于触摸。
Quaternion rot = transform.rotation; float z = rot.eulerAngles.z;
z-= Input.GetAxis("Horizontal") * rotSpeed * Time.deltaTime;
rot = Quaternion.Euler( 0, 0, z );
transform.rotation = rot;
我需要上面的代码可以在触摸上运行,该怎么做?
也许你应该阅读 Unity 脚本输入的 Api http://docs.unity3d.com/ScriptReference/Input.html
您可以使用 getTouch 方法来旋转对象 这里是文档
http://docs.unity3d.com/ScriptReference/Input.GetTouch.html
您可以使用增量来拖动或使用位置来旋转对象
所以就像这样不确定它的工作原理它应该与拖动一起工作
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
z-=touchDeltaPosition.x * rotSpeed * Time.deltaTime;
rot = Quaternion.Euler( 0, 0, z );
}
它应该与上面几乎相同,但是我们使用 y 轴作为垂直轴,而不是水平轴,此代码也可以拖动
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
Vector3 pos = transform.position;
Vector3 velocity = new Vector3(0, touchDeltaPoition.y * maxSpeed * Time.deltaTime, 0);
pos += rot * velocity;
}