Example #1
0
    void Shot()
    {
        RaycastHit hit;

        if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit, range))
        {
            Debug.Log(hit.collider.name);

            if (hit.transform.CompareTag("Enemy"))
            {
                GameObject _effect = Instantiate(bloodEffect, hit.point, Quaternion.identity);
                Destroy(_effect, 0.3f);

                Vida vida = hit.transform.GetComponent <Vida>();
                if (vida == null)
                {
                    throw new System.Exception("No se encontro el componente Vida del Enemigo");
                }
                else
                {
                    vida.RecibirDaño(daño);
                }
            }
            else
            {
                GameObject _effect = Instantiate(effect, hit.point, Quaternion.identity);
                Destroy(_effect, 0.5f);
            }
        }

        balasCargador--;
    }
    void DisparoDirecto()
    {
        RaycastHit hit;

        // if(Physics.Raycast(puntoDeDisparo.position, puntoDeDisparo.forward, out hit))
        if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit))
        {
            if (hit.transform.CompareTag("Enemigo"))
            {
                Vida vida = hit.transform.GetComponent <Vida>();
                if (vida == null)
                {
                    throw new System.Exception("No se encontro el componente Vida del Enemigo");
                }
                else
                {
                    vida.RecibirDaño(daño);
                    crearEfectoDaño(hit.point, hit.transform.rotation);
                }
            }
            if (hit.transform.CompareTag("verde"))
            {
                Vida vida = hit.transform.GetComponent <Vida>();
                if (vida == null)
                {
                    throw new System.Exception("No se encontro el componente Vida del Enemigo");
                }
                else
                {
                    vida.RecibirDaño(daño2);
                    crearEfectoDaño(hit.point, hit.transform.rotation);
                }
            }
        }
    }
Example #3
0
 void Atacar()
 {
     vidaJugador.RecibirDaño(daño);
     agente.speed        = 0;
     agente.angularSpeed = 0;
     estaAtacando        = true;
     animator.SetTrigger("DebeAtacar");
     Invoke("ReiniciarAtaque", 1.5f);
 }
Example #4
0
 public void RecibirDaño(float daño)
 {
     daño *= multiplicadorDeDaño;
     if (padreRef != null)
     {
         padreRef.RecibirDaño(daño);
         return;
     }
     valor    -= daño;
     dañoTotal = daño;
     if (valor >= 0)
     {
         MostrarTextoFlotante();
     }
     if (valor < 0)
     {
         valor = 0;
         MostrarTextoFlotante();
     }
 }