Я создаю игру-лабиринт, и в настоящее время у меня возникают задержки с управлением Android. Я настроил управление компьютером, чтобы двигаться вперед, поворачивать влево и вправо и прыгать, используя input.getaxis. Теперь на Android я создал кнопки, которые работают, но не так, как я хочу. Он может прыгать и поворачиваться, как я хочу, но он не двигается должным образом. Есть 2 проблемы: одна заключается в том, что когда я нажимаю, он немного перемещается, а затем мне нужно щелкнуть еще раз, но я хочу удерживать, и он будет двигаться непрерывно, а вторая проблема заключается в том, что когда я поворачиваю, персонаж не движется правильно, он всегда продолжается. x с input.getaxis все работает отлично, но мне нужно что-то, что будет работать для Android, вот мой код:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed;
public float speedj;
Rigidbody rb;
static Animator anim;
void Start()
{
rb = GetComponent<Rigidbody>();
anim = GetComponent<Animator>();
}
public void Walk ()
{
anim.SetTrigger ("Walk");
rb.velocity = new Vector3 (0,0,7f);
}
public void Left ()
{
transform.Rotate(0,-90f,0);
}
public void Right ()
{
transform.Rotate(0,90f,0);
}
public void Jump ()
{
anim.SetTrigger ("Jump");
rb.velocity = new Vector3 (0,4f,0);
}
public void StopVelocity ()
{
rb.velocity = Vector3.zero;
transform.Translate(0,0,0);
}
void FixedUpdate ()
{
float x = Input.GetAxis ("Horizontal") * Time.deltaTime * speed;
float z = Input.GetAxis ("Vertical") * Time.deltaTime * speed;
transform.Translate (0,0,z);
transform.Rotate (0,x,0);
if(Input.GetKey(KeyCode.Space))
{
anim.SetTrigger ("Jump");
rb.velocity = new Vector3 (0,speedj,0);
}
}
}
Итак, это функция fixedUpdate для компьютера, остальные - для кнопок для Android. Я использую триггер событий для событий перемещения указателя вверх и вниз, пожалуйста, помогите мне изменить код, чтобы он работал для Android, как он работает с Input.getAxis для компьютера. Благодарность!