用鼠标旋转相机但不要停止
Camera rotation with mouse but dont stop
我有一个问题 我制作了一个游戏,你可以在其中控制航天器并使用 mouse/keyboard 移动。我用鼠标上下左右旋转船。奇迹般有效。唯一的问题是当我停止移动鼠标时,船也会停止。因此,如果我想将飞船旋转几次,我需要 运行 用我的鼠标进行一场马拉松比赛。这是因为我使用 Input.Axis(Mouse X) 并且当您停止移动鼠标时它为零。
所以我想要的是:如果我将鼠标向左移动一点,并且仅当我 return 将鼠标移动到中心区域时才停止,则旋转飞船。我有这个代码 ATM
var c = Camera.main.transform;
float mouseX = Input.GetAxis("Mouse X");
c.Rotate(0, mouseX * sensitivity, 0);
c.Rotate(-Input.GetAxis("Mouse Y") * sensitivity, 0, 0);
c.Rotate(0, 0, -Input.GetAxis("QandE") * 90 * Time.deltaTime);
我怎样才能做到这一点
BugFinder 的回答是正确的。这是在代码中,用于绕 Y 轴旋转。您可以在此基础上构建其他轴。
using UnityEngine;
public class Roll : MonoBehaviour
{
public float sensitivity = .001f;
Transform c;
void Start()
{
c = Camera.main.transform;
}
void Update()
{
Vector3 mouse = Input.mousePosition;
float dx = 0;
if (mouse.x > 1000)
dx = mouse.x - 1000;
if (mouse.x < 920)
dx = mouse.x - 920;
c.Rotate(0, dx * sensitivity, 0);
}
}
我有一个问题 我制作了一个游戏,你可以在其中控制航天器并使用 mouse/keyboard 移动。我用鼠标上下左右旋转船。奇迹般有效。唯一的问题是当我停止移动鼠标时,船也会停止。因此,如果我想将飞船旋转几次,我需要 运行 用我的鼠标进行一场马拉松比赛。这是因为我使用 Input.Axis(Mouse X) 并且当您停止移动鼠标时它为零。
所以我想要的是:如果我将鼠标向左移动一点,并且仅当我 return 将鼠标移动到中心区域时才停止,则旋转飞船。我有这个代码 ATM
var c = Camera.main.transform;
float mouseX = Input.GetAxis("Mouse X");
c.Rotate(0, mouseX * sensitivity, 0);
c.Rotate(-Input.GetAxis("Mouse Y") * sensitivity, 0, 0);
c.Rotate(0, 0, -Input.GetAxis("QandE") * 90 * Time.deltaTime);
我怎样才能做到这一点
BugFinder 的回答是正确的。这是在代码中,用于绕 Y 轴旋转。您可以在此基础上构建其他轴。
using UnityEngine;
public class Roll : MonoBehaviour
{
public float sensitivity = .001f;
Transform c;
void Start()
{
c = Camera.main.transform;
}
void Update()
{
Vector3 mouse = Input.mousePosition;
float dx = 0;
if (mouse.x > 1000)
dx = mouse.x - 1000;
if (mouse.x < 920)
dx = mouse.x - 920;
c.Rotate(0, dx * sensitivity, 0);
}
}