如何向前移动角色并面向移动方向?

时间:2016-08-25 09:13:48

标签: c# android unity3d touchscreen

enter image description here我是团结的新手,任何帮助都会受到高度赞赏。

我想制作一个角色(如下图所示)连续向前移动的游戏。当用户触摸移动屏幕时,角色必须向上移动(长时间触摸将使角色连续向上移动)否则角色会因重力而缓慢下降。主题是避免碰到障碍物和角色运动应该是弯曲的。这是一个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
     }
 }

1 个答案:

答案 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是您移动物体的旋转。

希望这会有所帮助:)