Задать вопрос
@saylar
Разработчик Unity C#

Unity3D как реализовать движение с помощью акселерометра?

не могу понять как сделать перемещение, точнее я его вроде как сделал, но объект перемещается на маленькое расстояние, я бы даже сказал на сверх маленькое.
Использую вот такой вот код:
Vector3 pos = transform.position;
pos.y = Vector3.Dot(Input.acceleration, Vector3.up) * Speed;
pos.x = Vector3.Dot(Input.acceleration, Vector3.left) * Speed;
transform.rotation = Quaternion.Euler(pos.y, 0, pos.x);
  • Вопрос задан
  • 2297 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
https://docs.unity3d.com/ScriptReference/Input-acc...
для начала документация.
потом еще вы в курсе что Input.acceleration меряется просто в пределе от -N до N.?
и вот представим у вас в Input.acceleration меняется от -1 до 1. и как вы собираетесь дальше уйти??

на основе Input.acceleration - вам надо выбрать вектор/направление куда двигаться.
а само движение уже..что нибудь вроде

transform.Translate(dir * speed); как в документации

если вы осознали все, то поймете что у вас по сути вертится объект вокруг точки в пределе от -N до N.
(тоесть вы никак не смещаете относительно текущей позиции, а высчитываете на основе акселерометра просто глобальную позицию..надеюсь внятно пояснил)))
и Speed - банально увеличивает радиус только.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы