Мой скрипт не обновляется правильно, и я не думаю, что это проблема самого скрипта - PullRequest
0 голосов
/ 18 апреля 2019

В настоящее время я делаю 3D-игру, в которой я могу перемещать персонажа, нажимая wasd, но я изменяю направление лица персонажа, когда перемещаю мышь по оси X.Я также подразумевал, что я могу смотреть вверх и вниз, когда я перемещаю мышь по оси Y.Но по какой-то причине он не двигается, реагирует на функцию оси Y, когда я двигаю мышь.Но всякий раз, когда я вносил изменения в сценарий, пока играю в игру, он неожиданно работает.Для изменения даже не нужно иметь функцию, это может быть что-то вроде //this.В общем, мне было интересно, знает ли кто-нибудь причину этого и как я могу это исправить.

Вот код, если вы, ребята, думаете, что с ним что-то не так:

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 float gravity = 20.0f;

    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;
            transform.eulerAngles = new Vector3(0, xaxis, 0);

            yaxis += Input.GetAxis("Mouse Y") * ySensitivity;
            yaxis = Mathf.Clamp(yaxis, -40, 85);
            neck.transform.eulerAngles = new Vector3(yaxis, xaxis, 0);
        }
    }
}

1 Ответ

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

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

Когда я говорю, что немного выяснил, в чем дело, это означает, что я до сих пор не понимаю, почему обновление скрипта во время игры перезаписывает это или «исправляет»this.

Редактировать: я исправил это, вращая шею в LateUpdate ()

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