// Update is called once per frame void Update() { switch (estado) { case EstadoDaqui.preparandoTiro: transform.rotation = Quaternion.Lerp( transform.rotation, Rotation2D.GetRotation(transform.position, doHeroi.position), 10 * Time.deltaTime); tempoDecorrido += Time.deltaTime; if (tempoDecorrido > intervaloDeTiro) { estado = EstadoDaqui.emTiro; GameObject G = InstanciaLigando.Instantiate(projetil, transform.position, 10); G.AddComponent <ProjetilQuicavel>().Iniciar(transform.right, particulaTelegrafista, velDoProjetil); InstanciaLigando.Instantiate(particulaTelegrafista, transform.position, 5); VerificadorDeDistancia(); } else if (Vector2.Distance(transform.position, doHeroi.position) > distanciaDeAparecer || Vector2.Distance(transform.position, doHeroi.position) < proximoDeMais) { estado = EstadoDaqui.emEspera; ShowHideEnemy(false); VerificadorDeDistancia(); } break; } }
void SpawnarMagia(Vector3 pos, Vector3 dir = default(Vector3)) { if (dir == default(Vector3)) { dir = DirecaoNoPlano.NoUpNormalizado(transform.position, HeroPosition); } GameObject G = InstanciaLigando.Instantiate(setaSombria, pos, 10); EventAgregator.Publish(new StandardSendGameEvent(EventKey.disparaSom, SoundEffectID.lancaProjetilInimigo)); G.AddComponent <ProjetilInimigo>().IniciarProjetilInimigo(dir, particulaDoTeleport, velDaMagia, SoundEffectID.lancaProjetilInimigo); G.transform.rotation = Rotation2D.GetRotation(dir); }