Sobreviva
Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 47 de 50.
Desafio
MédioÚltima etapa: a partida termina, e o melhor resultado é mantido. Mantenha tudo das lições anteriores. O canvas tem um GameOverPanel oculto com ResultText, BestText e um RestartButton com o rótulo Fight again, e o objeto GameManager tem seu script GameManager, com hero, spawner, gameOverPanel, resultText, bestText e restartButton definidos no Inspector.
Herorecebepublic event Action Died, acionado quando sua vida chega a 0, depois que ele se desativa.- Em
GameManager.cs, adicione uma classe[System.Serializable]BestRuncompublic int waveepublic int kills. GameManagerescutaDieddo herói eEnemy.Died, que conta as eliminações desta partida: inscreva-se emOnEnablee cancele a inscrição emOnDisable. EmStart, ele carrega o melhor resultado debest.jsonemApplication.persistentDataPathcomJsonUtility, se esse arquivo existir, oculta o painel e faz com querestartButtonreinicie o jogo.- Quando o herói morrer, pare o jogo (
Time.timeScale0). O resultado da partida é aWavedo spawner e o número de eliminações. É um novo recorde se chegou a uma onda mais alta ou à mesma onda com mais eliminações: então ele se torna o melhor resultado e é salvo embest.jsoncomJsonUtility.ToJson. Mostre o resultado da partida emresultText, comoWave 2, 7 kills, e o melhor resultado embestText, comoBest: wave 3, 12 kills, e então mostre o painel. - O reinício restaura a escala de tempo para 1 e carrega a cena novamente.
Pressione Play e lute até cair, depois tente superar seu recorde. Em seguida, Check.
Experimente você mesmo
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Uma aula posterior preencherá isto: o fim da partida e a melhor partida.
}
Todas as lições de Arquitetura de jogos no Unity
1Componentes, não hierarquias
Componentes pequenosUm script-base para inimigosComponentes abstratosComponentes trabalhando juntosRevisão: Torre modular4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de Loot7Máquinas de Estados
Estados como ClassesUma Máquina de EstadosTransiçõesInteligências dos InimigosRevisão: Estados da Porta10Projeto: Sobrevivente da Arena
O HeróiTipos de Inimigos5ScriptableObjects
Assets de dadosAtributos das armasConfigurações compartilhadasOndas como dadosRevisão: banco de dados de itens