Pages

sexta-feira, 20 de março de 2015

As Ações Blueprints da Tela de Título

Este artigo é a continuação do artigo "Desenhando uma Tela de Título com UMG".

Abra o widget "UMG_TitleScreen" no editor UMG. Os elementos que vamos manipular são os 3 botões do menu. 


Selecione um dos botões, cuidado para não selecionar a imagem que está dentro do botão, é mais fácil fazer a seleção do botão pela aba "Hierarchy". 

Na aba "Details", categoria "Events", evento "OnClicked", clique no botão com o símbolo "+", conforme a imagem abaixo. Isto irá criar um evento que será acionado quando o botão for pressionado.


Faça o mesmo para os outros dois botões. É importante que os botões tenham nomes significativos para facilitar a identificação dos eventos no EventGraph. A imagem abaixo mostra os eventos criados para cada um dos botões.


Vamos começar com o botão "Start". Ele precisa apenas carregar o nível do jogo e remover o widget da tela:

Clique para aumentar

O nome do Nível usado na função "Open Level" tem de ser completo, ou seja, é o Path (caminho) mais o nome. Para obter o Path do level, basta passar o mouse por cima do ícone do level no Content Browser.


Para fazer a transição entre a Tela de Título e a tela About, vamos primeiro criar uma variável do tipo "User Widget" que guardará uma referência para o widget da tela About. Esta variável deve ser editável.


Para exibir a Tela About, vamos modificar a propriedade "Visibility" (Visibilidade) da tela de Título e da tela About. A tela de Título será escondida e a tela About será exibida.

Clique para aumentar

O botão Exit irá encerrar o jogo usando a função "Quit Game":

Clique para aumentar

Estas são as ações que pertencem ao widget "UMG_TitleScreen". As demais ações serão feitas no Level Blueprint.

No editor principal clique no botão "Blueprints" e depois em "Open Level Blueprint" para editarmos o Blueprint do Nível "TitleScreen".


Primeiro vamos criar duas variáveis para armazenar as referências para a tela de Título e a tela About. 

A imagem abaixo mostra as duas variáveis que foram criadas. A variável "TitleScreenWidget" precisa ser do tipo "UMG_TitleScreen" para podermos ter acesso a variável "AboutWidget" que criamos na tela de Título.

A variável "AboutWidget" pode ser do tipo "UserWidget" ou do tipo "UMG_About", pois não criamos nenhuma variável que precise ser acessada na tela About.


As ações de inicialização dos Widgets das telas serão feitas no Evento "Begin Play" do Level Blueprint. Serão criados os widgets das duas telas e suas referências serão armazenadas nas variáveis "TitleScreenWidget" e "AboutWidget". Os dois widgets serão adicionados à Viewport para exibição, mas a tela About ficará escondida.

Clique para aumentar

No início do evento é modificado uma propriedade do Player Controller para que seja exibido o mouse na tela de título. Depois da criação do "UMG_About" widget, sua referência também é armazenada na variável "AboutWidget" da tela de Título.

Está faltando apenas uma forma de sair da tela About e voltar para a tela de título. Eu optei por não incluir um botão na tela About. Para sair da tela About você deve pressionar a tecla "Enter". Estas ações também estão no Level Blueprint:

Clique para aumentar

Ao pressionar a "tecla Enter", é feito um teste para verificar se a tela About está visível. Se estiver vísivel então ela é escondida e a tela de título é exibida.