簡體   English   中英

上下移動鼠標時,統一沿x軸旋轉對象

[英]unity rotate object on x-axis when moving mouse up / down

我想在向上或向下移動鼠標時在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軸上的旋轉。

如果有人可以幫助我,那就太好了!

  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM