как сделать игрока в направлении, по которому он ходит unity3d - PullRequest
0 голосов
/ 19 ноября 2018

моя игра - вид сверху вниз, я могу перемещать персонажа с помощью джойстика, теперь я хочу, чтобы персонаж смотрел в направлении, по которому он шел ... не знаю, с чего начать, и пишу код, любые предложения здесь мой код ..

void FixedUpdate()
{
    var inputDevice = InputManager.ActiveDevice;

    if (inputDevice != InputDevice.Null && inputDevice != TouchManager.Device)
    {
        TouchManager.ControlsEnabled = false;
    }
    float horizontal = inputDevice.Direction.X;
    float vertical = inputDevice.Direction.Y;
    if (cam != null) //if there is a camera
    {
        camForward = Vector3.Scale(cam.up, new Vector3(1, 0, 1)).normalized;
        move = vertical * camForward + horizontal * cam.right;
    }
    else
    {
        move = vertical * Vector3.forward + horizontal * Vector3.right;
    }

    if (move.magnitude > 1) //Make sure that the movement is normalized
        move.Normalize();

    Move(move);
    Vector3 movement = new Vector3(horizontal, 0, vertical);    
    if (horizontal == 0 && vertical == 0)
    {
        rigidBody.velocity = Vector3.zero * 0.5f;
    }


    rigidBody.AddForce(movement * speed / Time.deltaTime);
    transform.LookAt (movement); // I tried this, but character looks in mid only (0,0.4,0)
}

редактировать: transform.LookAt (движение); // Я пробовал это, но персонаж выглядит только в середине

1 Ответ

0 голосов
/ 19 ноября 2018

LookAt «смотрит» на позицию, а не на направление. Ваше движение - это направление относительно позиции игрока. Попробуйте это:

transform.LookAt (transform.position + movement.normalized);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...