Здравствуйте! Возникла необходимость написать простенькое приложение на андройд. Решил использовать Юнити. Нужно лишь зависимость камеры от акселерометра, двигаться не надо. Сам я не владею ни С++ ни Ява скриптом (знаком только с паскалем
) из-за этого возникают проблемы. На сайте Юнити нашел инфу, как сделать связь с акс.
Возникли две проблемы:
1) Начальная позиция на оси Х - телефон параллелен полу, а мне нужно, что бы начальная позиция была когда телефон перпендикулярен полу. Перепробовал разные способы, которые смог придумать, но при них камера просто постоянно крутилась по оси Х
2) Так как я двигаю телефон только по осям Х и У, мне и нужно получить в итоге движение по ним. Камера отлично слушается, но почему то начинает крутиться и по оси Z. Никак не могу заморозить этот параметр.
Скрипт и скриншот прилагаются, просьба сильно тапками не бить за извращенные методы.
// Move object using accelerometer
var speed = 10;
var dir : Vector3 = Vector3.zero;
function Update () {
// we assume that device is held parallel to the ground
// and Home button is in the right hand
// remap device acceleration axis to game coordinates:
// 1) XY plane of the device is mapped onto XZ plane
// 2) rotated 90 degrees around Y axis
dir.x = Input.acceleration.x;
dir.y = -Input.acceleration.y;
// clamp acceleration vector to unit sphere
if (dir.sqrMagnitude > 1)
dir.Normalize();
// Make it move 10 meters per second instead of 10 meters per frame...
dir *= Time.deltaTime;
// Move object
transform.Rotate (dir * speed * 10);
}