我想制作一个角色(如下图所示)连续向前移动的游戏。当用户触摸移动屏幕时,角色必须向上移动(长时间触摸将使角色连续向上移动)否则角色会因重力而缓慢下降。主题是避免碰到障碍物和角色运动应该是弯曲的。这是一个3D游戏,但角色在x,y轴上移动。
直到现在我写下面的代码来向前移动角色,并在移动屏幕触摸时向上移动角色,但它没有按预期工作。
更新方法中的:
transform.position += Vector3.right * Time.deltaTime * movementSpeed;
if (Input.touchCount > 0) {
if (Input.GetTouch (0).phase == TouchPhase.Began) {
// move player against the gravity
transform.position += Vector3.up * Time.deltaTime * movementSpeed;
}
if (Input.GetTouch (0).phase == TouchPhase.Ended) {
// gravity acts on the character, so character falls down
}
}
答案 0 :(得分:0)
您可以查看其中一个Quaternion函数 - LookRotation:
https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html
代码应该像这样简单:
Vector3 relativePos = target.position - transform.position;
Quaternion rotation = Quaternion.LookRotation(relativePos);
transform.rotation = rotation;
target.position
是您触摸屏幕的位置,transform.position
是一个位置,transform.rotation
是您移动物体的旋转。
希望这会有所帮助:)