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); }
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; } }
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(); } }
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); }
void Disparar() { Proyectil clon = Instantiate(shell, pivote.position, transform.rotation); clon.Disparar(); }