Преобразование не будет вращаться вверх или вниз - PullRequest
2 голосов
/ 17 апреля 2019

В настоящее время я делаю сценарий движения, в котором я могу вращать игрока влево и вправо и просто вращать шею вверх и вниз; Но шея не будет вращаться ни вверх, ни вниз. По какой-то причине, если я обновляю скрипт во время игры (например, просто добавляю //test), он работает. Любая идея, почему это и как я могу это исправить?

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
    CharacterController characterController;

    public float speed = 6.0f;
    public float jumpSpeed = 8.0f;
    public float gravity = 20.0f;

    public Transform neck;

    private Vector3 moveDirection = Vector3.zero;

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

    void Update()
    {
        if (characterController.isGrounded)
        {
            //this
            // We are grounded, so recalculate
            // move direction directly from axes
            var mousePosX = Input.GetAxis("Mouse X");
            var mousePosY = Input.GetAxis("Mouse Y");

            transform.Rotate(0, mousePosX, 0);
            //Debug.Log("ABOVE - Y: " + mousePosY);
            Debug.Log("ABOVE - ROT: " + neck.rotation);
            neck.Rotate(Vector3.right, mousePosY, Space.Self);
            //Debug.Log("BELOW - Y: " + mousePosY);
            Debug.Log("BELOW - ROT: " + neck.rotation);

            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0.0f, 
                Input.GetAxis("Vertical"));

            moveDirection.z *= speed * 2;
            moveDirection.x *= speed;

            if (Input.GetButton("Jump"))
            {
                moveDirection.y = jumpSpeed;
            }
        }

        moveDirection.y -= gravity * Time.deltaTime;

        // Move the controller
        characterController.Move(moveDirection * Time.deltaTime);
    }
}

1 Ответ

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

Я узнал об этом, думаю, я добавил анимацию в плеер, чтобы переписать преобразование шеи, чтобы я не мог повернуть его через скрипт. Способ, которым я это исправил, заключался в создании функции LateUpdate, в которой я помещал вращение на ось Y головок, что снова перезаписывало анимацию.

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