Мне нужна помощь, чтобы исправить следующий код, чтобы иметь возможность стрелять, когда пуля при касании кнопки огня 1 не работает, когда я использую Unity Remote на своем мобильном телефоне

Шаги

  1. Назначил скрипт Player Shoot для GameObject
  2. нажмите на кнопку в сцене, перейдите к инспектору. и добавьте событие OnClick, перетащите игровой объект, на котором есть скрипт, и выберите функцию Fire ().
  3. использование удаленного приложения unity на мобильном телефоне, когда кнопка огня не работает

Код, который я использую ... как следующий:

using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;

    public class PlayerShoot : MonoBehaviour {

        public GameObject Ammo; // the shot
        GameObject FiredShot;
        public AudioClip bcgMusic;
        public List<GameObject> ShotsOnAir;

        //public AudioClip sound1;    // Use this for initialization

        void Start (){
            ShotsOnAir = new List<GameObject>();
        }

        //void Update (){
        //    Fire ();
        //}

        public  void Fire(){
            if (Input.GetButtonDown ("Fire1")){

                FiredShot = (GameObject)Instantiate(Ammo,transform.position,transform.rotation);
                ShotsOnAir.Add(FiredShot);
                AudioSource.PlayClipAtPoint (bcgMusic, transform.position);
            }

            if(ShotsOnAir != null){
                int i=0;

                foreach (GameObject GB in ShotsOnAir){


                    ShotsOnAir[i].transform.position += ShotsOnAir[i].transform.forward * 200 * Time.deltaTime;

                    i++;
                }

            }

        }

    }
0
Sa'ad Qasaymeh 5 Янв 2018 в 03:14

2 ответа

Лучший ответ

Input.GetButton () не работает на мобильных устройствах

Вам необходимо использовать Input.touches / Input.GetTouch() вместо этого

1
Draco18s no longer trusts SE 5 Янв 2018 в 00:17
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class PlayerShoot : MonoBehaviour {

    public GameObject Ammo; // the shot
    public GameObject FiredShot;
    public AudioClip bcgMusic;
    public List<GameObject> ShotsOnAir;

    //public AudioClip sound1;  // Use this for initialization

    void Start (){
        ShotsOnAir = new List<GameObject>();
    }

    //void Update (){
    //  Fire ();
    //}

    public  void Fire(){
        //if (Input.touches ("Fire1")){

        if (Input.touchCount > 0 ){         
            FiredShot = (GameObject)Instantiate(Ammo,transform.position,transform.rotation);
            ShotsOnAir.Add(FiredShot);
            AudioSource.PlayClipAtPoint (bcgMusic, transform.position);
        }

        if(ShotsOnAir != null){
            int i=0;

            foreach (GameObject GB in ShotsOnAir){


                ShotsOnAir[i].transform.position += ShotsOnAir[i].transform.forward * 10000 * Time.deltaTime;

                i++;

            }


        }

    }


}
0
Sa'ad Qasaymeh 5 Янв 2018 в 00:34