Локальные координаты в rb.MovePosition

Общие вопросы о Unity3D

Локальные координаты в rb.MovePosition

Сообщение IsnderKuzen 15 ноя 2022, 16:40

Есть код движения объекта через Rigitbody, но есть проблема, в отличии от Transform.Translate, в Rigitbody нет параметра локального пространства, то есть объект будет двигаться не в сторону камеры, а в сторону глобальных координат. Как можно изменить глобальные координаты на локальные?

Синтаксис:
Используется csharp
Vector3 m_input = new Vector3(Input.GetAxis("Vertical"), 0, -Input.GetAxis("Horizontal"));
_rb.MovePosition(transform.position + m_input * Time.deltaTime * move_speed);


Нет желания использовать Transform.Translate, потому что по итогу персонаж либо проходит сквозь стены, либо его трясет, либо падает в пропасть.
IsnderKuzen
UNец
 
Сообщения: 2
Зарегистрирован: 15 ноя 2022, 16:31

Re: Локальные координаты в rb.MovePosition

Сообщение Alkos26Rus 15 ноя 2022, 20:32

Синтаксис:
Используется csharp
_rb.MovePosition(transform.position + transform.TransformDirection(m_input) * Time.deltaTime * move_speed);

transform.TransformDirection вместо transform можешь трансформ камеры использовать
Единица - ноль
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1425
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Локальные координаты в rb.MovePosition

Сообщение 1max1 15 ноя 2022, 21:05

Нет желания использовать Transform.Translate, потому что по итогу персонаж либо проходит сквозь стены, либо его трясет, либо падает в пропасть.

А типа с MovePosition будет все хорошо (нет) :D
Аватара пользователя
1max1
Адепт
 
Сообщения: 5214
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Общие вопросы

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

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