Пример #1
0
    public override void Disparar(Transform arma, Vector3 direccion, float damage)
    {
        Vector3 desfase = new Vector3(0, separacion, 0);

        Proyectil disparo = (Proyectil)Pooler.instance.SpawnObjeto(proyectil);

        disparo.SetPatron(patron);
        disparo.transform.position = arma.position;
        disparo.posInicial         = arma.position;
        disparo.angulo             = direccion.Angulo();
        disparo.setDamage(damage);
        disparo.Disparar(damage, direccion);

        Proyectil p2 = (Proyectil)Pooler.instance.SpawnObjeto(proyectil2);

        p2.SetPatron(patron2);
        p2.transform.position = arma.position + desfase;
        p2.posInicial         = arma.position + desfase.RotarPunto(direccion.Angulo());
        p2.angulo             = direccion.Angulo() + angulo;
        disparo.setDamage(damage);
        p2.Disparar(damage, direccion);

        p2 = (Proyectil)Pooler.instance.SpawnObjeto(proyectil3);
        p2.SetPatron(patron3);
        p2.transform.position = arma.position - desfase;
        p2.posInicial         = arma.position - desfase;
        p2.angulo             = direccion.Angulo() - angulo;
        p2.Disparar(damage, direccion);
    }
Пример #2
0
    public override void Disparar(Transform arma, Vector3 direccion, float damage)
    {
        float   currentAngle    = 0;
        Vector3 desfase         = new Vector3(0, 0, 0);
        Vector3 currentDesfase  = new Vector3();
        float   anguloDireccion = direccion.Angulo();

        for (int i = 0; i < cantidadProyectiles; i++)
        {
            currentDesfase = desfase;
            currentDesfase.RotarPunto(anguloDireccion);


            Proyectil disparo = (Proyectil)Pooler.instance.SpawnObjeto(proyectil);
            disparo.SetPatron(patron);
            disparo.transform.position = arma.position + currentDesfase;
            disparo.posInicial         = arma.position + currentDesfase;
            disparo.angulo             = anguloDireccion + currentAngle;
            disparo.Disparar(damage, direccion);


            if (i % 2 == 0)
            {
                currentAngle -= angulo;
                desfase.y    -= separacion;
            }

            // currentAngle -= i % 2 == 0 ? angulo : 0;
            currentAngle *= -1f;
            desfase      *= -1;
        }
    }
Пример #3
0
    public override void Disparar(Transform arma, Vector3 direccion, float damage)
    {
        Proyectil disparo = (Proyectil)Pooler.instance.SpawnObjeto(proyectil);

        disparo.SetPatron(patron);
        disparo.transform.position = arma.position;
        disparo.posInicial         = arma.position;
        disparo.angulo             = direccion.Angulo();
        disparo.setDamage(damage);
        disparo.Disparar(damage, direccion);
    }
    public void Disparar(Entidad entidad)
    {
        if (disparoprefab == null)
        {
            Debug.LogError("No contiene un proyectil valido.");
            return;
        }
        if (IsActivo())
        {
            Proyectil p = (Proyectil)disparoprefab.Create(entidad.transform.parent, transform.position, entidad);
            p.Disparar(transform.forward);
            eventodisparo.Invoke();

            temporizador.Start();
        }
    }
Пример #5
0
    public override void Disparar(Transform arma, Vector3 direccion, float damage)
    {
        Proyectil shot1 = (Proyectil)Pooler.instance.SpawnObjeto(proyectil);
        Proyectil shot2 = (Proyectil)Pooler.instance.SpawnObjeto(proyectil);

        shot1.setDamage(damage);
        shot1.SetPatron(patron);
        shot1.transform.position = arma.position;
        shot1.posInicial         = arma.position;
        shot1.angulo             = direccion.Angulo();
        shot1.Disparar(damage, direccion);

        shot2.SetPatron(patron2);
        shot2.transform.position = arma.position;
        shot2.posInicial         = arma.position;
        shot2.angulo             = direccion.Angulo();
        shot2.setDamage(damage);
        shot2.Disparar(damage, direccion);
    }
Пример #6
0
    void Disparar()
    {
        Proyectil clon = Instantiate(shell, pivote.position, transform.rotation);

        clon.Disparar();
    }