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

Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 10 ноя 2017, 21:27
skDYLAN
Как производить поворот объекта только по конкретным осям.
Как сделать чтобы при движении мыши по оси X или Y, изменялось в трансформе значение только X или Y.

Re: Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 10 ноя 2017, 22:05
Anonymyx
Изменять только X или Y.
А так, киньте код, как вы меняете, может кто-нибудь по конкретнее подскажет.

Re: Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 10 ноя 2017, 22:30
Cr0c
skDYLAN писал(а):значение только X или Y.

Локальные? Глобальные? А объект дочерний?

Re: Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 10 ноя 2017, 22:50
skDYLAN
Синтаксис:
Используется csharp
void Update()
{
        _yRotation = Input.GetAxisRaw("Mouse Y");
        _xRotation = Input.GetAxisRaw("Mouse X");
}
void FixedUpdate()
{
    GetComponent<Transform>().Rotate(-_yRotation, _xRotation, 0f);
}
 


Проблема данного способа в том, что координаты меняются относительного измененного положения объекта.
https://ru.wikipedia.org/wiki/%D0%A3%D0 ... 1%80%D0%B0

Re: Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 10 ноя 2017, 23:59
Cr0c
skDYLAN писал(а):
Синтаксис:
Используется csharp
void Update()
{
        _yRotation = Input.GetAxisRaw("Mouse Y");
        _xRotation = Input.GetAxisRaw("Mouse X");
}
void FixedUpdate()
{
    GetComponent<Transform>().Rotate(-_yRotation, _xRotation, 0f);
}
 


Проблема данного способа в том, что координаты меняются относительного измененного положения объекта.
https://ru.wikipedia.org/wiki/%D0%A3%D0 ... 1%80%D0%B0

transform.Rotate( Vector3 axis, float angle, Space.World)
Перегруженные методы смотреть надо, там много интересного попадается

Re: Поворот объекта мышью только по конкретным осям

СообщениеДобавлено: 11 ноя 2017, 00:03
skDYLAN
Cr0c писал(а):
skDYLAN писал(а):
Синтаксис:
Используется csharp
void Update()
{
        _yRotation = Input.GetAxisRaw("Mouse Y");
        _xRotation = Input.GetAxisRaw("Mouse X");
}
void FixedUpdate()
{
    GetComponent<Transform>().Rotate(-_yRotation, _xRotation, 0f);
}
 


Проблема данного способа в том, что координаты меняются относительного измененного положения объекта.
https://ru.wikipedia.org/wiki/%D0%A3%D0 ... 1%80%D0%B0

transform.Rotate( Vector3 axis, float angle, Space.World)
Перегруженные методы смотреть надо, там много интересного попадается


Решил данную задачу следующим способом

Синтаксис:
Используется csharp
void Update()
{
        _yRotation += Input.GetAxisRaw("Mouse Y");
        _xRotation += Input.GetAxisRaw("Mouse X");
}

void FixedUpdate()
{
     Vector3 rotation = new Vector3(-_yRotation, _xRotation, 0f) * lookSpeed;
     transform.eulerAngles = rotation;
}