sexta-feira, 24 de junho de 2016

Compêndio BP 2: Game Instance

Game Instance


Antes de carregar um novo nível, o nível atual é descarregado e as variáveis utilizadas pelo nível atual são removidas da memória. Quando o novo nível é carregado, as variáveis relacionadas ao nível tais como GameMode, PlayerController e Pawn são criadas com valores padrões. Isto significa que se existem valores nestas variáveis que precisam ser preservados ao mudar de nível, eles devem ser salvos antes de sair do nível atual e depois carregados no novo nível.

Outra opção para preservar valores de variáveis entre os níveis é usando a classe "GameInstance". Uma instância desta classe é criada no início do jogo e só é removida quando o jogo for encerrado. Para criar um Blueprint deste tipo pesquise por "gameinstance" na categoria "AllClasses".


Após criar o Blueprint do tipo "GameInstance" é preciso configurar o projeto para utilizar esta nova "GameInstance". Acesse no editor principal a opção de menu: Edit->ProjectSettings->Maps & Modes. Foi criado um Blueprint chamado "BP_GameInstance" para ser usado neste projeto.


Como exemplo foi criado no "BP_GameInstance" uma variável com o nome "Time Spent in Game" para guardar o tempo que uma pessoa já gastou no jogo. A imagem abaixo é um evento customizado que mostra como acessar esta variável a partir de outro Blueprint. 

Clique para aumentar

Use a função "Get Game Instance" para obter a referência ao "GameInstance" que está sendo usado pelo projeto. Só que esta referência é do tipo "GameInstance" e para acessar a variável "Time Spent in Game" é preciso usar uma referência do tipo "BP_GameInstance" que é obtida usando a ação "Cast to BP_GameInstance".