[RESOLVIDO] Destruir um inimigo e mudar de cena para o fim do jogo
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Destruir um inimigo e mudar de cena para o fim do jogo
Alguém sabe como fazer para destruir um inimigo por exemplo ou uma quantidade de inimigos e ao chegar ao ultimo mudar para proxima cena ?
luckas211- Membro
- PONTOS : 2052
REPUTAÇÃO : 7
Respeito as regras :
Re: [RESOLVIDO] Destruir um inimigo e mudar de cena para o fim do jogo
Dá Uma Olhada Nesse video Vai te Ajudar => https://www.youtube.com/watch?v=SoZDEx_RdX0
Magnatah- Instrutor
- PONTOS : 3549
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Destruir um inimigo e mudar de cena para o fim do jogo
Existem várias formas de fazer isso, no exemplo que fiz, se o inimigo morre, ele envia seu ID por meio de um evento estático, então em outro script, eu escuto esses eventos para contar quantos inimigos morreram, chegando no limite estipulado, a próxima cena é chamada. Bônus: Também mantenho uma lista contendo os IDs dos inimigos mortos, pode ser útil caso queira verificar tipos diferentes de inimigos.
E a beleza disso é que nada fica na Update, tudo é baseado em eventos, cliques, etc.
PROJETO
E a beleza disso é que nada fica na Update, tudo é baseado em eventos, cliques, etc.
- Script Inimigo:
- Código:
using System;
using UnityEngine;
using UnityEngine.UI;
public class Inimigo : MonoBehaviour
{
public static event Action<int> Morreu = delegate { };
public Button esteBotao;
public Image vida;
public Text saudetxt;
private const float SAUDEMAX = 100;
private float saude;
public int idInimigo;
void Start()
{
saude = SAUDEMAX;
}
public void TomarDano()
{
float dano = UnityEngine.Random.Range(5, 20);
saude -= dano;
saudetxt.text = "Saúde " + saude.ToString()+"%";
if (saude <= 0)
{
saude = 0;
esteBotao.interactable = false;
saudetxt.text = "Morto";
Morreu(idInimigo);
}
vida.fillAmount = saude * 0.01f;
}
}
- Script Gerenciador:
- Código:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class GerenciadorInimigos : MonoBehaviour
{
public Text contadorMortes;
public int objetivoMortes;
private int numMortes = 0;
private List<int> inimigosMortos;
private void Awake()
{
Inimigo.Morreu += ContarMortes;
inimigosMortos = new List<int>();
}
public void ContarMortes(int idinimigo)
{
string temp = "";
numMortes++;
inimigosMortos.Add(idinimigo);
contadorMortes.text = "Inimigos mortos: "+numMortes.ToString();
for (int i = 0; i < inimigosMortos.Count; i++)
{
temp = temp +"inimigo " + inimigosMortos[i]+", ";
}
print("Inimigos mortos:\n"+temp);
if (numMortes >= objetivoMortes)
{
SceneManager.LoadScene("OutraCena");
}
}
}
PROJETO
SteveRogers- Instrutor
- PONTOS : 2674
REPUTAÇÃO : 156
Respeito as regras :
Re: [RESOLVIDO] Destruir um inimigo e mudar de cena para o fim do jogo
Obrigado, todos me deram um ideia e me ajudaram ! Vlw!!!
luckas211- Membro
- PONTOS : 2052
REPUTAÇÃO : 7
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Ajuda com script para matar Inimigo no Jogo
» [RESOLVIDO] Destruir inimigo com o player.
» [RESOLVIDO] Mudar sprite em outra cena
» [RESOLVIDO] Problema com objeto 3D após mudar cena
» [RESOLVIDO] Timer pra mudar de cena na unity 2018
» [RESOLVIDO] Destruir inimigo com o player.
» [RESOLVIDO] Mudar sprite em outra cena
» [RESOLVIDO] Problema com objeto 3D após mudar cena
» [RESOLVIDO] Timer pra mudar de cena na unity 2018
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos