Поворот камеры с помощью мыши, но не останавливайтесь - PullRequest
0 голосов
/ 05 марта 2020

У меня вопрос, я сделал игру, в которой вы управляете космическим кораблем и используете мышь / клавиатуру для перемещения. Я использую мышь, чтобы вращать корабль вверх, вниз, влево и вправо. Работает как шарм. Единственная проблема в том, что когда я прекращаю двигать мышью, корабль тоже останавливается. Поэтому, если я хочу несколько раз повернуть корабль, мне нужно пробежать марафон с помощью мыши. Это потому, что я использую Input.Axis (Mouse X) и это ноль, когда вы перестаете двигать мышь.

Итак, что я хочу: повернуть корабль, скажем, влево, если я немного переместлю мышь влево, и остановлюсь, только когда я верну мышь в центральную область. У меня есть этот код банкомат

    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);

Как я могу выполнить sh это

1 Ответ

0 голосов
/ 05 марта 2020

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);
    }
}
...