Страница 1 из 1

Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 18:01
danko11811
Здравствуйте Не могу понять почему при вращении камеры у меня изменяется переменная Z(При том что в коде я её оставляю 0).Уже 2 -ой день бьюсь с этим скриптом.
Синтаксис:
Используется csharp
        void Update () {
        X = Input.GetAxis("Mouse X") * CursorSens * Time.deltaTime;
        Y = -Input.GetAxis("Mouse Y") * CursorSens * Time.deltaTime;
        Z = 0;
        PlayerCamera.transform.rotation *= Quaternion.Euler(Y, X, 0.0f);
   }

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 18:27
Jarico
потому что *=

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 18:46
danko11811
Jarico писал(а):потому что *=

Если убрать *= и поставить просто = , то камера вообще перестает вращаться

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 18:50
Uncle_Rufus
А что у тебя в КурсорСенс записано?

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 18:57
danko11811
Uncle_Rufus писал(а):А что у тебя в КурсорСенс записано?

Синтаксис:
Используется csharp
[Range(0f,20f)]public float CursorSens;
Эта переменная пока выставляется в редакторе(потом планирую сделать настройку чувствительности мыши)

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 19:26
Cr0c
Потому что вращение камеры по разным системам: горизонтально по мировой оси Y, вертикально по локальной X

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 20:20
Uncle_Rufus
https://docs.unity3d.com/ScriptReferenc ... ation.html

Я думаю что беда как раз в том что ты используешь диапазон величин (в КурсорСенс) и сразу умножаешь ГетАксесы на эти величины... Попробуй добавить умножение в описание поворота..

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 20:47
1max1
А не проще будет углы ейлера юзануть?
Синтаксис:
Используется csharp
float x, y;

void Update()
{
    x += Input.GetAxis("Mouse X") * CursorSens;
    y -= Input.GetAxis("Mouse Y") * CursorSens;

    PlayerCamera.transform.eulerAngles = new Vector3(x, y, 0.0f);
}


p.s. на дельтатайм умножать вовсе не обязательно.

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 20:49
danko11811
Uncle_Rufus писал(а):https://docs.unity3d.com/ScriptReference/Transform-rotation.html

Я думаю что беда как раз в том что ты используешь диапазон величин (в КурсорСенс) и сразу умножаешь ГетАксесы на эти величины... Попробуй добавить умножение в описание поворота..

Они же не все берутся только одно число, или я что то не понял из твоей формулировки?

Re: Помогите с вращением камеры

СообщениеДобавлено: 26 фев 2019, 20:50
danko11811
1max1 писал(а):А не проще будет углы ейлера юзануть?
Синтаксис:
Используется csharp
float x, y;

void Update()
{
    x += Input.GetAxis("Mouse X") * CursorSens;
    y -= Input.GetAxis("Mouse Y") * CursorSens;

    PlayerCamera.transform.eulerAngles = new Vector3(x, y, 0.0f);
}


p.s. на дельтатайм умножать вовсе не обязательно.

Спасибо!Работает!