Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Script Para Disparos?

Iniciado por Joksan, Abril 11, 2018, 05:02:05 AM

Tema anterior - Siguiente tema
Hola, estoy haciendo un juego en unity para el movil es tipo shooting solo con duelos, el problema es que necesito un script para una revolver que tenga solo una bala y a la hora de disparar sea aleatoreamente algo asi como ruleta rusa, ya tengo mi modelo 3d y las animaciones solo que no se como implementar el script

Pues en el gameobject le pones el script de la bala o la pistola, si no recuerdo mal en el tutorial de unity de los tanques te enseña un script de disparar. Échale un ojo!

si todo eso lo tengo en claro se como hacer con el script que el arma dispare pero quiero hacer que un revolver gire el cargador y inserte una bala pero que a la hora de disparar no salga al primer disparo que sea aleatorio o por suerte
tengo la animacion insertando la bala pero no se como hacer el script a parte de que descontinuaron java

Random.Range(0,6) te dada un numero aleatorio entre 0 (incluido) y 6 (Excluido) ...osea: 0, 1, 2, 3, 4 o 5,  (que son seis numeros)
 

if (Random.Range(0,6) == 0) {
   //si hay bala  
   disparar();
}

 
si te da cero disparas, con el 1,2,3,4 y 5 no disparas...
 
no se si te servira

ok muchas gracias lo voy a intentar


//Disparo, Sonido
    public GameObject HitAcertado;
    //public GameObject EfectoDisparo;
    public GameObject HuecoPared;
    GameObject hueco;
    public float Distancia;
    float TiempoDisparo;
    [SerializeField]
    float _velocidad;
    RaycastHit hit;
    public AudioClip sonidoDisparo;
    //Fin Disparo y Sonidos
    //ANIMACIONES Y MUNICION
    public int Balas = 1;
    public int ComprobarRecarga = 1;
    public int Cargador = 6;
    Animation _animArma;
    [SerializeField]
    public float velocityAnimation;
        //FIN ANIMACIONESY MUNICION
    void Start ()
    {
         
        _animArma = GetComponent<Animation>();
       
        //HitAcertado.SetActive(false);
       // EfectoDisparo.SetActive(false);
}


void Update ()
    {
        if (Input.GetButton("Fire1") && !_animArma.IsPlaying("Recargar"))
        {
            TiempoDisparo += Time.deltaTime;
           
            if (TiempoDisparo >= _velocidad && Balas >= 1)
            {
                _animArma["Disparar"].speed = velocityAnimation;
                _animArma.Play("Disparar", PlayMode.StopAll);
                Camera.main.GetComponent<AudioSource>().PlayOneShot(sonidoDisparo, 0.3f);
                //EfectoDisparo.SetActive(true);
                Balas -= 1;
                Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
                if(Physics.Raycast (ray, out hit, Distancia))
                {
                    if(hit.collider.gameObject.tag == "Pared")
                    {
                        //hueco = Instantiate(HuecoPared, hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal)) as GameObject;
                        Debug.Log("Acertaste");
                        HitAcertado.SetActive(true);
                    }
                }
                TiempoDisparo = 0;
                //Destroy(hueco, 3.5f);
            }
        }
        if (Balas == 0 && Cargador > 1 && !_animArma.IsPlaying("Disparar"))
        {
         
            _animArma["Recargar"].speed = 1f;
            _animArma.Play("Recargar", PlayMode.StopAll);
            Recargar();
        }
       
        if (Input.GetButton("Fire2") && Cargador > 1 && !_animArma.IsPlaying("Disparar"))
        {
            Balas = 0;
            _animArma["Recargar"].speed = 1f;
            _animArma.Play("Recargar", PlayMode.StopAll);
            Recargar();
        }
}
    void Recargar()
    {
        Balas += ComprobarRecarga;
        Cargador -= ComprobarRecarga;
       
    }
}

 
oye me podrias ayudar, tengo mi script y e visto tutoriales de random range pero la verdad no tengo la menor idea de implementarlo tengo un cargador donde le caben 6 balas y donde solo se dispara una pero creo que tengo que usar otra variable para que el cargador tenga solo 1 bala y dispare 6 veces

Etiquetas: