Как портировать игру под Android? Unity (переделать управление)

Помогите пожалуйста. Делаю курсовую работу на тему :"Игры на мобильные устройства", но в C# я не очень давно. Сначала я написал игру под ПК в стиле TDM (Top Down Shooter). С помощью джойстика (asset) начал делать управление. Начались следующие проблемы: - при старте / после остановки движения, персонаж поворачивается на 90 градусов вправо; - при нажатии на джойстик передвижения персонаж делает выстрел; - ShootPoint (выстрел) постоянно уходит в рандомные позиции, а из-за одновременного срабатывания на джойстик передвижения может даже себе нанести урон. ShootPoint + положения игрока

   public class PlayerMovement : MonoBehaviour
{
    protected Joystick joystick;

    public float moveSpeed = 5f;
    public Rigidbody2D rb;
    public Camera cam;
    public int health = 100;
    Vector2 movement;
    Vector2 mousePos;
    public HealthBar healthBar;
    public int currentHealt;

    // Update is called once per frame
    void Start()
    {
        joystick = FindObjectOfType<Joystick>();

        currentHealt = health;
        healthBar.SetMaxHealth(health);
    }
    void Update()
    {   
        movement.x = joystick.Horizontal;
        movement.y = joystick.Vertical;
        mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
    }
    void FixedUpdate()
    {
        rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime);

        //Vector2 lookDir = mousePos - rb.position;

        float angle = Mathf.Atan2(joystick.Vertical, joystick.Horizontal) * Mathf.Rad2Deg -90f;
        rb.rotation = angle;

    }

}


    public class shooting : MonoBehaviour
{
    public Transform firePoint;
    public GameObject bulletPrefab;
    public float bulletForce = 20f;


    // Update is called once per frame
    void Update()
    {
        if (GamePause.GameIsPause)
        {

        } else
        {
            if (Input.GetButtonDown("Fire1"))
            {
                Shoot();
                SoundManagerScript.PlaySound("fire");
            }
        }
    }
   public void Shoot()
    {
        GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
        rb.AddForce(firePoint.position * bulletForce, ForceMode2D.Impulse);

    }

Ответы (0 шт):