Пишу простенький контроллер, для аркадной леталки под андроид, вид сзади, постоянно набирает скорость и летит вперед, нужно двигаться влево и вправо, чтобы уворачиваться от препятствий, уже всё готово, но возникла большая проблема.
Для перемещения влево и вправо, Я использую два варианта управления, акселерометр (с ним все в порядке) и джойстики в режиме тачпада.
Так вот, в чем собственно проблема, Я не могу заставить наклонятся в нужную сторону объект при его перемещении влево или вправо, когда включено управление с помощью тачпада. Прошу объясните как сделать так, чтобы при нажатии на тачпад (допустим левый), симулировалось Input.GetKey(KeyCode.LeftArrow) или (KeyCode.A). Перепробовал много способов, но не получилось , моих мозгов не хватило видимо на это.
Вот часть кода, в которой существует проблема.
Синтаксис:
Используется javascript
var leftTouch : Joystick;
var rightTouch : Joystick;
function FixedUpdate () {
if (leftTouch.tapCount > 1) //Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) - если использовать это, то вращать объект получается.
rigidbody.AddForce(Vector3.left * Time.deltaTime * 10);
else if (rightTouch.tapCount > 1) //Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) - если использовать это, то вращать объект получается.
rigidbody.AddForce(Vector3.right * Time.deltaTime * 10);
tiltAngle = 30.0;
tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
var target = Quaternion.Euler (0, 0, -tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
}
var rightTouch : Joystick;
function FixedUpdate () {
if (leftTouch.tapCount > 1) //Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) - если использовать это, то вращать объект получается.
rigidbody.AddForce(Vector3.left * Time.deltaTime * 10);
else if (rightTouch.tapCount > 1) //Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) - если использовать это, то вращать объект получается.
rigidbody.AddForce(Vector3.right * Time.deltaTime * 10);
tiltAngle = 30.0;
tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
var target = Quaternion.Euler (0, 0, -tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
}
Заранее благодарю за ответ.