如何旋转播放器以查看触摸操纵杆所指向的方向?

时间:2019-04-20 05:44:19

标签: c# unity3d mobile

我正在为Android构建自上而下的游戏,该游戏本身是3D。我需要它使角色平滑地面对操纵杆的方向并朝该方向移动。我可以将操纵杆的当前方向作为Vector 2获取,但是不知道如何使用Vector 2变量旋转播放器。

这是我用来移动汽车(Player)的代码。我将Joystick Pack用于触摸操纵杆。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public FixedJoystick joystick;
    public float speed = 10f;
    public float rotateSpeed = 40f;

    Rigidbody rb;

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    private void Update()
    {
        float horizontal = joystick.Horizontal;
        float vertical = joystick.Vertical;

        Vector3 movement = transform.InverseTransformDirection(new 
Vector3(horizontal, 0, vertical));
        rb.velocity = (movement * speed);
    }
}

先谢谢您!

1 个答案:

答案 0 :(得分:0)

frameMovement = new Vector3(horizontal, 0f,vertical);


Quaternion rotation = Quaternion.LookRotation(frameMovement);    
transform.rotation = rotation;

这有助于我在操纵杆所面对的位置移动和旋转。