при перемещении мыши вверх / вниз объект поворачивается на единицу - PullRequest
0 голосов
/ 05 июня 2018

Я хочу вращать объект по оси X, когда я перемещаю мышь вверх или вниз (увеличить вращение X при перемещении мыши вверх, уменьшить при перемещении мыши вниз).

Но я неНе знаю, как это сделать.

Я попробовал этот скрипт:

public float mouseSensitivity = 100.0F;
public float clampAngle = 80.0F;

float rotX = 0.0F, rotY = 0.0F;

void Update()
{
    // Mouse Look
    float mouseX = Input.GetAxis("Mouse X");
    float mouseY = Input.GetAxis("Mouse Y");

    rotX += mouseY * mouseSensitivity * Time.deltaTime;
    rotY += mouseX * mouseSensitivity * Time.deltaTime;

    rotX = Mathf.Clamp(rotX, -clampAngle, clampAngle);

    Quaternion localRotation = Quaternion.Euler(rotX, 0, 0.0F);
    transform.rotation = localRotation;
}

Но это также контролирует вращение на оси Y.У меня также есть вращение по оси Y, но они управляются с помощью ввода с клавиатуры:

if (Input.GetKey(KeyCode.W) && !Input.GetKey(KeyCode.S))
    transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed);
else if (Input.GetKey(KeyCode.S) && !Input.GetKey(KeyCode.W))
    transform.Translate(Vector3.forward * Time.deltaTime * -moveSpeed);

if (Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D))
    transform.Rotate(Vector3.up * Time.deltaTime * -rotateSpeed, Space.World);
else if (Input.GetKey(KeyCode.D) && !Input.GetKey(KeyCode.A))
    transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed, Space.World);

, и я хочу, чтобы мышь вверх / вниз управляла только вращением по оси X.

Если кто-то может мне помочь, это было бы здорово!

1 Ответ

0 голосов
/ 06 июня 2018

void Update () {

// Mouse Look

float mouseX = Input.GetAxis ("Mouse X");

float mouseY = Input.GetAxis ("Mouse Y");

rotX = mouseY * чувствительность мыши;

rotY = mouseX * чувствительность мыши;

transform.rotation * = Quaternion.Euler (rotX, 0, 0.0f);

}

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