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

Программирование на Юнити.

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

Сообщение skDYLAN 10 ноя 2017, 21:27

Как производить поворот объекта только по конкретным осям.
Как сделать чтобы при движении мыши по оси X или Y, изменялось в трансформе значение только X или Y.
skDYLAN
UNец
 
Сообщения: 30
Зарегистрирован: 04 окт 2017, 13:30

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

Сообщение Anonymyx 10 ноя 2017, 22:05

Изменять только X или Y.
А так, киньте код, как вы меняете, может кто-нибудь по конкретнее подскажет.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

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

Сообщение Cr0c 10 ноя 2017, 22:30

skDYLAN писал(а):значение только X или Y.

Локальные? Глобальные? А объект дочерний?
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

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

Сообщение skDYLAN 10 ноя 2017, 22:50

Синтаксис:
Используется 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
skDYLAN
UNец
 
Сообщения: 30
Зарегистрирован: 04 окт 2017, 13:30

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

Сообщение Cr0c 10 ноя 2017, 23:59

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)
Перегруженные методы смотреть надо, там много интересного попадается
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

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

Сообщение skDYLAN 11 ноя 2017, 00:03

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;
}
skDYLAN
UNец
 
Сообщения: 30
Зарегистрирован: 04 окт 2017, 13:30


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8