Голова не будет вращаться вместе с телом - PullRequest
0 голосов
/ 18 апреля 2019

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

Вот мой сценарий:

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

public class CharacterMovement : MonoBehaviour
{
    CharacterController characterController;


    private float xaxis = 0.0f;
    private float yaxis = 0.0f;
    public float horizontalMovementSpeed = 2f;
    public float verticalMovementSpeed = 2f;

    public float xSensitivity = 2f;
    public float ySensitivity = 2f;

    public Transform neck;

    void Start()
    {
        characterController = GetComponent<CharacterController>();
        Cursor.lockState = CursorLockMode.Locked;
    }

    void Update ()
    {
        if(!characterController.isGrounded)
        {
            transform.Translate(Input.GetAxis("Horizontal") * horizontalMovementSpeed * Time.deltaTime, 0f, Input.GetAxis("Vertical") * verticalMovementSpeed * Time.deltaTime);
            xaxis += Input.GetAxis("Mouse X") * xSensitivity;
            yaxis += Input.GetAxis("Mouse Y") * ySensitivity;
            transform.eulerAngles = new Vector2(0, xaxis);

            yaxis = Mathf.Clamp(yaxis, -40, 85);
            neck.eulerAngles = new Vector2(yaxis, 0);
        }
    }
}

1 Ответ

1 голос
/ 18 апреля 2019

Я предполагаю, что вы делаете 2D-игру, так как ваш код использует Vector2s.

Вы можете изменить свою реализацию, чтобы использовать метод transform.LookAt и проходить через позицию мыши.

https://docs.unity3d.com/ScriptReference/Transform.LookAt.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...