Transcrições
1. 1.00 Introdução: Neste curso,
você aprenderá como adicionar o modo multijogador Steam a qualquer projeto de jogo usando plantas
no Unreal Engine O curso abrange tudo o que você precisa saber do
início ao fim, incluindo como instalar as sessões do
Steam Advanced. Insira como criar o menu
principal para jogos online. Como
criar o menu Create Sera para hospedar servidores online Como criar o navegador do servidor e exibir os servidores online. Como adicionar uma opção de filtro servo para
filtrar por idioma,
nome do servo, terra e Como criar, pesquisar e
entrar em servidores de jogos online. E, finalmente, como empacotar o projeto para que amigos e
familiares joguem juntos. Ao final deste curso, você adquirirá as habilidades e a
confiança para
integrar perfeitamente o Steam em qualquer um dos
seus projetos do Unreal Engine
Five E lembre-se de que
estarei aqui para dar
suporte a você durante toda a sua jornada de aprendizado e espero
vê-lo em breve.
2. 1.01 VS, . NET Core, . NET Framework e DirectX: Antes de
começarmos, você precisa baixar algumas
coisas para que funcione. A primeira coisa que você
precisa baixar é algo chamado Dotnet Core Se você escrever isso no
Google e pesquisar, poderá ver na Microsoft o primeiro site
dizendo download Net. Dentro daqui você tem
um botão para este, DoesDK, você tem que
baixar o mais recente que
você vê na tela Você pode assistir
isso no futuro, não
importa, basta
baixar o mais recente. Agora, depois de fazer o Core, você também precisa baixar o.NET Framework.
Se você clicar nele e baixar novamente o mais recente que você
vê na tela. Vá em frente e baixe
o Net Framework. Então você precisa
baixar o Direct X. Então, vá em frente e
baixe o Direct X, selecione o idioma
e clique em Download A última coisa que você precisa baixar é o Visual Studio 2022. Vá em frente e clique nele.
Para o Visual Studio, basta selecionar
o Community 2022. E vá em frente e
baixe isso também. Agora, para o Visual Studio 2022, você precisa instalar
algumas coisas específicas. É muito importante que você preste atenção aqui clicando em
Modificar para o meu instalador, que você
possa ver o que eu
instalei e instalar as mesmas
coisas aqui. O que eu quero que você instale é
o chamado.net
Desktop Baixe, aquele chamado Desktop Development
with Plus Plus. universal
da plataforma Windows, desenvolvimento móvel
com Plus Plus. Também o desenvolvimento do jogo
com o Plus Plus. A última coisa, eu não acho que
você precise, mas eu tenho. Linux e
desenvolvimento embarcado com C Plus Plus. Além disso, certifique-se no componente
individual. E é melhor
eu clicar neste Sap para que você possa vê-lo e
eu vá até o final. Temos o SDK do Windows. Eu tenho o SDK do Windows Ten. É muito importante fazer
o download disso também. Você pode até baixar
a mesma versão que eu, se puder
vê-la na minha tela. Você também pode baixar
o SDK do Windows 11. É muito
importante ter dois SDKs. Depois é só ir em frente e
instalar um visual studio 2022. Vamos encerrar isso e
voltar para mim assim
que terminar.
3. 1.02 Convertendo o projeto em C++: Vamos prosseguir e lançar
o motor. Neste curso, estou usando o motor mais recente, 5.3 Agora, se você está assistindo este curso e tem uma nova versão,
isso não importa Ainda é o mesmo processo. Então você pode ir em frente
e assistir também. Vou
lançar o Unreal Engine 5.3. Nesta janela, você pode criar um
novo projeto clicando nos jogos e selecionar
um modelo para trabalhar Agora eu já tenho um projeto. Estou indo para meus projetos recentes e aqui posso vê-los. Realmente não consigo ver meu projeto
recente no qual
quero trabalhar. Vou clicar em Procurar. Aquele em que vou trabalhar
se chama Counterstrike. Vou selecionar este
projeto aqui e clicar em Abrir. Como meu projeto foi feito com Unreal Engine 5.2
e não com o 5.3,
vou clicar em abrir
uma cópia para que ele não exclua minha cópia antiga caso
algo
dê Agora, para este curso, novamente, estou usando o
Counterstrike Project e é um curso
que eu lancei Se você deseja fazer este
curso, você pode, é claro, acessar o site Game Instruct.com. Dentro daqui,
você pode fazer o curso Eu também tenho
muitos outros cursos. Eu tenho um
mercado de ativos onde você pode comprar ativos prontos para jogos. Eu tenho
aulas particulares e assim por diante. Você pode ir em frente e visitar isso. Deixe-me encerrar isso. Agora, ele abriu meu projeto aqui, vou definir a
escalabilidade para a Epic Também pode fazer isso
nas configurações aqui. Escalabilidade, eu geralmente
faço isso na Epic. Agora estamos prontos
para trabalhar com isso. Nesta lição, vamos
converter o projeto
em C plus. Embora estejamos
trabalhando com o blueprint, não
vamos
trabalhar com o C plus plus, mas temos que convertê-lo um projeto C plus plus antes que o plug-in
do Steam possa funcionar Vamos seguir em frente e fazer isso com
muita facilidade. Vamos clicar em. Antes de fazer isso, na verdade,
deixe-me ir para Tools e ir para Bug. E nós apenas refletimos,
vou usar a interface do usuário porque estou gravando em
um monitor de quatro K e pode
parecer pequeno na gravação Agora vamos clicar em Ferramentas. Vá em frente e clique no
novo arquivo C plus plus e, em
seguida, clique em Avançar. Basta clicar em Criar turma. Na verdade, não é muito
importante dar um nome a ele, agora está convertendo o projeto em um projeto C plus plus Quando isso estiver concluído,
tecnicamente é um projeto. Agora vá em frente
e clique em OK aqui. E ele pergunta se você
gostaria de editar o código. Agora vá em frente e clique
em Não. Agora estamos prontos. Vamos
encerrar esse projeto
e passar
para a próxima lição.
4. 1.03 Adicionando o plug-in de sessões avançadas do Steam: Vamos agora adicionar
o plug-in de sessões do Steam. Para fazer isso, quero que
você acesse o Google e pesquise por Si Steam. Quando você pesquisa por
isso, você vê o
primeiro no Github
chamado Sense Steam, e esse cara tem
o plug-in aqui Vá em frente e clique no código
aqui e faça o download. Agora, eu já
baixei esse arquivo e posso vê-lo aqui,
no Steam Master. Vou abrir meu arquivo. Abra aqui, clique em logins. Abra as sessões avançadas do
Steam. Conecte. Esses são os
dois arquivos sessões
avançadas e das sessões
avançadas do Steam. Então, deixe-me seguir em frente
e minimizar o navegador. Você pode prosseguir e encontrar o arquivo de projeto com o
qual está trabalhando. Este é, novamente, o projeto de
contra-ataque em
que estou trabalhando aqui O que eu quero que você faça é clicar com o botão direito do mouse, criar uma nova
pasta e chamá-la de plug-ins. Abra a pasta de plugins. Quero que você arraste as sessões
avançadas até aqui, e também as sessões avançadas do
Steam. Você tem essas duas pastas
dentro da pasta de plugins. Isso é tudo o que
precisávamos fazer, agora temos o plug-in
dentro do nosso projeto.
5. 1.04 Criando no Visual Studio: Antes de continuarmos
e abrirmos o projeto, precisamos criar
no Visual Studio. Além disso, antes de fazer isso, vamos excluir algumas
das pastas para que não
ocorram erros. Se você tiver a pasta VS, selecione-a e
selecione a pasta de cache de
dados derivada. Agora, se houver algumas
pastas que você não tem, tudo bem, vamos excluí-las
de qualquer maneira. Vá em frente e selecione também a pasta
intermediária. A pasta VS config foi salva
e também este arquivo LN. Não exclua o arquivo do projeto, é o seu projeto,
mas este Exclua. Este é L e
file and delete no seu teclado e ele
vai excluir todos eles. Essas são as pastas
que nos restam. Se você tiver uma pasta
chamada binários, também
poderá excluí-la Se você não
tem, tudo bem. Agora, o que precisamos fazer
é escrever, clicar no arquivo do projeto, ir em frente e clicar em Mostrar mais. Precisamos clicar em Gerar arquivos de projeto do
Visual Studio. Quando você fizer isso, ele
será gerado aqui. Agora, é por isso que era
tão importante baixar a estrutura do Visual
Studio.Core.NET Isso ocorre porque precisamos
gerar esse arquivo SLN. Se você tiver algumas eras
ao fazer isso, leia quando
estiver sendo gerado. Isso lhe dará uma era. Se tiver,
descreverá para você por que
existe uma era. Tente lê-lo, veja se você
pode pesquisar no Google e corrigi-lo. Se você não puder, é claro que
também pode escrever para mim, eu
vou te ajudar. Temos uma ótima comunidade
aqui no Discord,
então você pode, é claro,
usar este
link do Discord para se juntar a nós Somos muitas pessoas sentadas
aqui ajudando umas às outras. Somos cerca de 1.000
ou 2.000 agora. Vamos
abrir o arquivo SLN. Então, se eu clicar duas vezes nesse arquivo, ele abrirá um estúdio visual. E quando
abrir um estúdio visual, na
pasta Jogos e clique com o botão direito do
mouse no seu jogo, e você pode clicar em Construir. Agora vamos
construir um projeto. Pode levar algum tempo, às vezes leva 5 minutos, às vezes leva dez,
às vezes 1 minuto. Só temos que
esperar que ele seja construído. Você pode ver aqui que
diz três de 17. Vou
pausar este vídeo até que a construção
termine Agora ele terminou de ser construído. É importante
ver que foi bem-sucedido e que você não tem
nenhum erro aqui Isso é bem-sucedido.
Vamos encerrá-lo e passar
para a próxima lição.
6. 1.05 Habilitando o plug-in de sessões avançadas no Steam: Agora estamos prontos para
abrir o projeto mais uma vez. Vamos abrir seu arquivo de projeto. Dentro do projeto,
precisamos ter certeza de que o plug-in do Steam está
instalado corretamente, clicando em Janela ou
Editar, e clicando em
Plugins dentro daqui. Vamos clicar neste
plug-in de sessões
avançadas que você vê aqui. Vemos que as sessões
avançadas e as sessões avançadas do Steam
estão habilitadas. Eu também quero que você
desça e clique na plataforma
online. E
se você rolar para baixo, certifique-se de que
o subsistema on-line também
esteja ativado Agora podemos ver que tudo
isso está ativado. Agora posso encerrar meu
projeto mais uma vez e vamos para a próxima lição.
7. 1.06 Editando o arquivo DefaultEngine.ini: Por fim, antes
que tudo funcione, precisamos adicionar algum
código dentro do arquivo padrão
do mecanismo. Se você simplesmente acessar
o Google e pesquisar algo como o subsistema
on-line do Steam
ou o subsistema on-line
Unreal Engine,
verá isso no Unreal Engine chamado
Subsistema verá isso chamado Se você abri-lo aqui
dentro, eles têm algum código
que precisamos adicionar. Role para baixo, você
tem algo aqui nas configurações finalizadas Mecanismo
padrão, eu vou em frente e copio tudo isso. Você realmente não precisa
entender esse código. Basta clicar com o botão direito do mouse em Copiar. E então eu quero que
você volte para a pasta do
seu projeto aqui. Quero que você abra
o arquivo de configuração e, em seguida, abra o Default Engine E vá em frente e abra isso. Agora, dentro daqui, role para
baixo e, na parte inferior, vá em frente e clique no controle
V para inserir a página. A única coisa
importante aqui agora
é esse ID de desenvolvedor do aplicativo Steam. Agora, esse 480 é um ID de teste
que você pode usar para basicamente implementar o Steam sem enviar
seu jogo para o Steam O Steam criou um ID de aplicativo de teste para nós que podemos
usar durante o desenvolvimento. No entanto, se você
já enviou seu Steam ou seu
jogo para o Steam, você precisa alterar
esse 480 ID de aplicativo para seu próprio ID de aplicativo de jogo. Então, aqui estou logado no Partner dot Steam
Games.com Novamente, eu tenho um curso sobre esta página Se você acessar Game
instruct.com e quiser saber como enviar
seu jogo para o Steam, eu tenho isso, mas
só quero mostrar
que aqui você pode
ver o ID do seu aplicativo Basta pegar
esse número se você tiver feito o upload para o Steam
e adicioná-lo aqui, e ele funcionará
em seu próprio jogo. Mas, por enquanto,
não precisamos
enviá-lo para o Steam se
você ainda não estiver pronto. Portanto, essa ideia de 480
funcionará muito bem. Lembre-se de seguir
em frente e clicar em Salvar. Então, ele é salvo. Vamos fechá-lo. E agora
vamos abrir o projeto. Então, vou dar
uma olhada aqui. Quando estamos dentro
do projeto, temos que ter certeza de
que o Steam está funcionando. Você precisa executá-lo como
um jogo independente. Se você não fizer isso,
não vai funcionar. Além disso, você também
precisa executar o Steam. Certifique-se de que o Steam esteja
sendo executado no seu computador. Só estou verificando
o meu, não está. Então, vou abrir o Steam e também entrar na sua conta, certificar-me de que o Steam está
funcionando. Antes de você fazer isso, estou preso ao Steam. Vou clicar aqui e
clicar em Jogo autônomo, e ele abrirá o
jogo quando abrir o jogo Você pode ver aqui
embaixo, no canto inferior direito, que o vapor está correndo. E dessa forma, sabemos que o Steam foi implementado e
o plug-in está funcionando. Agora estamos prontos para
passar para a próxima lição.
8. 1.07 Criando o mapa de menu principal: Para começar, vamos criar o mapa do menu principal. Eu já tenho uma
pasta chamada maps. Você pode ir em frente e criá-lo. Você sempre pode clicar com o botão direito do mouse aqui, criar uma nova pasta e
chamá-la de mapas dentro daqui. Vamos clicar com o botão direito do mouse
para criar um novo nível. Vou apenas
dar a ele um prefixo de
mapa e chamá-lo de Menu Principal Vá em frente e
clique duas vezes sobre isso. Vá em frente e salve o selecionado. Agora estamos dentro do mapa
do menu principal. Nada está aqui agora, mas o que queremos
fazer é clicar em Editar, clicar em Configurações do Projeto
e, dentro daqui, clicar
em Mapas e Modos. Queremos mudar o mapa de inicialização
dos editores para ser o menu principal e também
os padrões do jogo Mude para o menu principal. Agora, toda vez que o
jogador inicia o jogo, eles aparecem no menu principal E isso também é o que queremos. Vamos prosseguir e fechar isso. Salve tudo e
vamos para a próxima lição.
9. 1.08 Modo de jogo no menu principal e controlador de jogador: Antes de começarmos, precisamos criar um
controle de jogador e um modo de jogo. Vamos fazer isso. Eu já tenho
uma pasta chamada blueprints Agora você realmente não precisa
prestar atenção a tudo isso. Isso é do meu jogo. Se você é novo aqui,
preste atenção às coisas
novas que criamos. Além disso, se você tiver
um projeto em branco, não é muito importante
para tudo isso, clique
com o botão direito do mouse e
crie uma nova pasta. Vou chamá-lo de menu principal. Vamos trabalhar aqui
dentro. Clique com o botão direito do mouse e vá
para a aula de Blueprint. Dentro daqui,
queremos criar um controlador
de jogador dentro daqui. É aqui que você cria o menu, coisas
da interface do usuário e assim por diante. Então, vamos
criar isso. E vou chamá-lo de EC para
controlador de jogador como prefixo E então eu vou
chamá-lo de Menu Principal. Vamos clicar com o botão direito novamente. Crie uma classe de blueprint. Aqui podemos criar
o modo de jogo. E vamos chamá-lo de modo de jogo GM como prefixo e
chamá-lo de Menu Principal Agora que os temos,
abra o modo de jogo. Dentro daqui, temos que
atribuir o controlador do player. Se você acessar os padrões de classe aqui para a classe do
controlador do player, vamos clicar aqui e alterá-la para o
controlador do Player que criamos Vá em frente e clique em Compilar, e vamos
fechar isso. Revise e edite as configurações do
projeto.
Volte para Mapas e Modos. Dentro daqui,
também temos que mudar o modo de jogo padrão
aqui para o nosso menu principal. Agora abrimos o menu
principal, o modo de jogo. Sempre que abrirmos o jogo, se você clicar na
pequena seta aqui embaixo, certifique-se de que a classe de controle de
local seja o menu principal do nosso PC
que criamos. Vamos fechá-lo. E a
última coisa que precisamos fazer é verificar
as configurações mundiais. Você não tem a facada aberta
para o mundo. Você sempre pode
clicar em Janela aqui e abrir
as configurações mundiais. Mas aqui dentro, no modo
de jogo, substitua. Certifique-se de que você também tenha selecionado o menu principal do
GM Então vá em frente e clique em
Arquivo e Salvar Tudo. E agora o modo de jogo e controle
do jogador
estão implementados.
10. 2.01 Introdução ao Blueprints de widgets: Agora estamos prontos para
criar o menu principal. Mas antes de fazermos
isso, vamos dar uma olhada nas plantas do widget Agora, se você já sabe o que é
um modelo de widget e como navegar
dentro dele, pode pular para a próxima lição Mas se você é novo aqui, vamos
continuar aqui na pasta UI. Se você não tiver
um em seu projeto, basta clicar com o botão direito aqui
na pasta de conteúdo criar uma nova pasta chamada UI. É sempre bom
se manter organizado. Vamos entrar nessa pasta. Novamente, não se importe com
toda essa interface de usuário. Isso é do meu projeto de
Counterstrike que já fizemos
no meu outro curso Mas vamos clicar com o botão direito
aqui, criar uma nova pasta. Vamos chamá-lo de menu principal. Vamos apenas
trabalhar aqui dentro. Vamos clicar com o botão direito agora, criar uma nova interface de usuário e
criar um plano amplo Faça isso aqui. Na verdade, você
pode chamá-lo de WB, menu principal Vou criá-lo mais tarde. Por enquanto, vou mostrar o que é um modelo de widget Vamos abri-lo.
Dentro daqui, você vê um gráfico aqui e
pode
clicar com o botão direito do mouse para
navegar por aqui. À esquerda, você tem uma paleta, e aqui estão os botões, o texto e assim por diante Portanto, você tem alguns
elementos que podem ser usados para criar a interface do usuário. Aqui na hierarquia, você pode ver o que
você adicionou à sua interface Por exemplo, você pode
clicar nessa imagem, clicar e arrastá-la aqui. Aqui você pode ver
a imagem que é branca porque não
temos nada nela. Mas você também pode ver que ele foi adicionado à
hierarquia aqui embaixo Normalmente, quando criamos a interface do usuário, sempre
começamos com uma tela. Se você pesquisar uma tela, clique e arraste-a até aqui. E agora você tem essa
tela aqui na tela. Agora você pode clicar
e arrastar a imagem. Você pode clicar e arrastar
o texto até aqui. Ou você também pode clicar e
arrastá-lo aqui na
tela. Isso também o
adicionará e você
sempre poderá clicar nele
e movê-lo. Você pode clicar nele e
redimensioná-lo conforme desejar. Você pode tentar praticar aqui
dentro. É sempre bom
, por exemplo, se você nunca viu a parte de
progresso antes, também poder arrastá-la para dentro. Você pode redimensioná-lo se quiser, você pode clicar nele aqui
no painel de detalhes É aqui que você vê detalhes sobre os elementos
nos quais está clicando. Então, por exemplo, se eu
clicar na barra de progresso, posso ver elementos como
a posição no X e Y. E você pode clicar
e arrastar
o mouse para ajustá-la Ou você pode escrever um
número, por exemplo, 1.000. Você pode ajustar o
tamanho em X e Y. Você também pode jogar
com a porcentagem, porque lembre-se de que essa
é uma barra de progresso Você pode clicar e rike aqui
ou definir um número, por exemplo, 0.2 Você também pode estilizá-lo aqui no
estilo No momento, não temos muito, você não pode adicionar nada,
mas pode adicionar sua
própria imagem de fundo,
sua própria imagem de preenchimento e assim por diante. O mesmo acontece com o texto,
se você clicar no texto, poderá editar o tipo de fonte. Você pode editar o
tamanho do texto e até mesmo a cor. Você pode dar um
esboço aqui embaixo ou escrever
seis, por exemplo E agora ele dá um esboço. Você pode tentar criar ou simplesmente brincar
com tudo isso. Você pode ver que tem
alguns elementos. Por exemplo, caixa de texto editável. Essa é uma caixa de texto
e você pode atribuir a ela, por exemplo, um
valor padrão. E você pode ver agora que algo está escrito dentro dessa caixa de texto. Você pode ver, você pode tentar
brincar com tudo isso. É assim que você trabalha
dentro de um widget, blueprint. E você pode ampliar. E aqui, aqui no canto superior esquerdo, você pode ver o quanto
você reduziu o zoom, o quanto você ampliou Um a um é o que
parece agora. Aqui no gráfico,
temos duas seções. Temos o designer
onde você cria a interface do usuário. Você também tem o gráfico
em que programa a interface do usuário. Por exemplo, você programa. O que essa parte do progresso faz? Por exemplo, neste jogo de
contra-ataque que criamos, a barra de progresso é usada para
definir a saúde do jogador. A saúde diminui quando
você se machuca. Isso é feito no
gráfico em que você codifica a barra de progresso. Aqui é principalmente onde você projeta. Ok, tente brincar por aqui. E isso é para
animações aqui embaixo. Nós
vamos falar sobre isso mais tarde. Por enquanto, vou clicar com o botão
direito do mouse e ocultar essa guia ou simplesmente fechá-la. Na verdade, feche a guia. Não está no nosso caminho por enquanto. Sim, apenas brinque por aqui. Eu só vou
fechá-lo por enquanto. E eu vou deletá-lo. E vamos
para a próxima lição.
11. 2.02 Importando uma fonte personalizada: Antes de continuarmos,
quero que você baixe um fundo personalizado porque não
temos fundos aqui e
eu gosto de usar fundos personalizados. O que estou usando,
eu já tenho um da criação do, tipo, curso
de greve. Eu já baixei
o fundo rubic, mas agora vou mostrar como
você pode fazer isso Se você pesquisar fundos do Google, geralmente
gosto de usá-los, você também pode pesquisar aqui. Você também pode encontrar fundos
muito legais. Há muitos deles, então você
pode tentar dar uma olhada aqui e eu vou
usar um Fundo do Google. Eu acho que eles têm fundos
muito legais que você pode usar aqui. O que estou usando é Rubic. Se quiser usar o mesmo, você pode pesquisar por Rubic Você pode usar esse Rubic aqui e
clicar nele novamente. Você pode encontrar qualquer fundo que quiser. Vá em frente e tente encontrar
algum fundo aqui nos fundos. Você pode
dar uma olhada em todos eles. Mas para o Rubic, você pode clicar em
um dos fundos Você pode até mesmo testá-lo. Por exemplo, se você estiver
certo, no menu principal aqui embaixo, você pode reduzir o tamanho. Basta dar uma olhada em
como será e visualizá-lo.
Se você gostar, clique em
Baixar Família aqui e também
abra essa estática. Agora eu tenho todos esses
arquivos, essa fonte estática. Você pode ir em frente e usar
o que quiser aqui. Normalmente eu não gosto
das fontes leves porque elas parecem muito pequenas dentro do Unreal Engine e você quase
não consegue vê-las no jogo Normalmente gosto
de ir do médio, nem mesmo do normal, do médio. E então eu pego o semibold, talvez o extra ousado,
ousado e preto,
aqueles que eu usaria Você precisa extraí-los
primeiro em sua área de trabalho, porque isso é um arquivo. Clique e
arraste-os para uma área de trabalho ou para sua pasta de downloads,
o que você desejar. Por exemplo, faça isso
na pasta Downloads. Sempre que você fizer isso, vá para
a pasta Downloads aqui. Agora você pode usá-los,
pegar todos eles e abrir o motor
dentro daqui. Deixe-me minimizar esse
motor no motor. Se você puder criar uma pasta chamada fundos dentro da
pasta UI, clique com o botão direito do mouse. Crie uma nova pasta chamada
Fundos dentro dos fundos. Clique e arraste-os até aqui. Sempre que você
os arrastar até aqui, ele perguntará você
quer que eu
crie fundos para você? Vá em frente e pressione
sim. Quando você fizer isso, tudo isso
aparecerá para você. Então, quando você tem fundos personalizados, agora
podemos usá-los
dentro da interface do usuário em vez do
enfadonho fundo padrão E agora vamos passar para
a próxima lição e
criar o menu principal.
12. 2.03 Criando o menu principal: Tudo bem, agora estamos prontos
para criar o menu principal. E antes de fazer isso,
incluí alguns
materiais do curso para você. Eu te dei alguns designs de interface do usuário. Você pode ir em frente e acessar
a pasta UI aqui. Eu te dei botões,
ícones e imagens. Se você clicar em
sua pasta dentro daqui pouco antes
do menu principal, não entre na pasta do menu
principal aqui, você pode criar uma pasta
chamada botões. Novamente, você pode clicar com o botão direito do mouse, criar uma nova pasta chamada
botões e também imagens. Por enquanto, não vamos
usar ícones, apenas botões, imagens e fazer com que essas pastas
entrem na pasta de botões. Agora vá em frente e entre
nesta pasta de botões. Agora, eu já importei,
isso é do meu curso. Mas o que você pode fazer é
selecionar o primeiro, segurar a tecla Shift e selecionar o último. Então você seleciona todos eles
e, em seguida, pode clicar
e arrastá-los até aqui, e isso os importará. Agora, muito importante, se
você o tiver em um arquivo Sip,
precisará extraí-los primeiro, novamente para seus downloads
ou desktop, por exemplo E então você pode
arrastá-los até aqui. Nunca faça isso dentro
de uma pasta Sip, porque ele exibirá esse ícone aqui e
você não poderá fazer isso Lembre-se de
extraí-los primeiro e depois arrastá-los até aqui. Faça o mesmo com
as imagens, colete tudo e
arraste-as para a pasta de imagens. E eu já fiz isso,
então eu tenho tudo isso. Vamos em frente e projetemos. Vamos para a pasta do menu
principal. Vamos clicar com o botão direito do mouse
para acessar a Interface do usuário e criar um
esquema de widget Vamos chamá-lo de Menu Principal. Vamos para o menu
principal Widgets. Agora, aqui dentro,
antes de fazermos qualquer coisa, sempre
começamos com
um painel de tela. Quando criamos um menu
no Unreal Engine, arrastamos isso
até a hierarquia e você adiciona um painel de tela Ok, então antes de começarmos aqui o tamanho da tela é
muito importante. Clique aqui, vá para laptops e configure-o como um laptop genérico. Isso é importante
porque agora
configuramos essa interface de usuário para ser
projetada para um laptop. E, ao fazer isso, garantimos que a interface do usuário não seja muito pequena ou muito
grande para o laptop. E podemos ampliá-lo
adequadamente em monitores grandes. Agora estou usando um monitor de quatro K. Vai ficar bem quando
eu o projetar para um laptop. E então eu escalo
para o meu monitor. A forma como aumentamos a escala é
se você
clicar aqui neste pequeno botão
e, dentro daqui, você pode ver que esse é
o dimensionamento da interface do usuário No momento, tenho
um monitor de quatro K. Então, se eu segurar o mouse sobre ele, ele diz que está escalando minha interface em 1,6 vezes.
Você pode ser mais. Porque, na verdade, aqui, se você clicar neste
à direita, o seu provavelmente
dirá oito por padrão. Então você pode ver se é oito. Se eu clicar nesses dois para
encaixá-los na tela, são oito. Ele vai escalá-lo em cerca de 3,8 vezes do que eu o projetei No entanto, quando joquei com ele, quando fiz meu jogo, acho que 3,8 vezes foi demais. Ele escalou minha interface de usuário e era muito grande na tela do meu monitor de quatro
K, era demais. Eu gostaria de
colocá-lo em 2,5 na escala. Então. Vamos
continuar a partir daqui. Agora eu posso ver que ele
escala 1,6 vezes. Vamos encerrar isso agora. E agora está sendo dimensionado corretamente. Para criar o menu principal, o que eu quero que
você faça é criar
algo assim. Se eu abrir,
gostaria de mostrar o que estamos tentando fazer para que
fique claro. Estamos tentando fazer isso
com três botões no meio e
o nome aqui em cima. Vamos começar com esse. Você pode ver que os botões
estão alinhados verticalmente. Precisamos de algo
chamado caixa vertical. Procure uma caixa vertical e aqui está. Arraste aqui. E aqui está. Você o adiciona aqui, vamos
arrastá-lo para a exibição. E acabei de fazer minha interface de usuário larga, para que você possa ver o que estou fazendo
aqui com a caixa vertical. Arraste-o para
alinhá-lo agora ao meio. Você precisa mudar o ponto de ancoragem para o
meio da tela Então, se você escrever 00 na
posição y e x e y, você pode ver que ele
se alinha no canto superior esquerdo Isso ocorre porque você precisa
jogar agora com o alinhamento. Você pode ver se você clicar
e arrastar o mouse, isso é 0,5 Se ele se
alinhar
no meio no x e um se ele se
alinhar no lado direito, nós o queremos no centro é
0,5 O mesmo com o y. Se você o quiser no
centro é 0,5, ele vai 0-1 e é 0,5 Se você
quiser no meio, 0,5 por 0,5 e a
posição no x e y é 0,0 Agora
está no Agora, quando você quiser adicionar
um botão com texto, precisará adicionar uma sobreposição Uma sobreposição é onde você pode sobrepor o
texto no botão Se você pesquisar um botão, vá em frente e
arraste-o para a sobreposição
e, em seguida, poderá
pesquisar por texto Em seguida, você também pode arrastá-lo para cima da sobreposição. Agora você sobrepôs
o texto no botão. Você tem isso na ordem inversa. Você sempre pode clicar e
arrastá-los um sobre o outro. E agora você pode ver que o
texto está atrás do botão. Você pode clicar no
botão e colocá-lo acima. Agora, para o botão, quero que ele preencha
todo o espaço aqui. Eu quero que ele seja preenchido horizontalmente e verticalmente Agora está preenchendo toda
a sobreposição. Digamos que você queira
preencher a coisa toda. Você pode ver que esta é
a caixa vertical. Esse é o tamanho e essa é a sobreposição que você
deseja preencher Toda a caixa vertical. Você pode clicar na
sobreposição e clicar em Preencher. Aqui, o botão
preencherá tudo. Agora, vamos fazer isso
por enquanto com o botão. Quero clicar nele
e alinhá-lo no meio
do botão na
horizontal Agora, o botão é muito grande
para a caixa vertical. Vou clicar nele
e redimensioná-lo por
enquanto para ficar mais ou menos assim Tudo bem, vamos
desenhar o botão primeiro. Clicando no botão, eu posso ir para o estilo aqui
dentro. Eu posso mudar o estilo normal
das imagens aqui, lembre-se, importamos
muitos botões e imagens. Agora, para os botões,
você pode clicar aqui, encontrar o botão e ver qual deles
deseja usar Você pode ir até sua
pasta aqui embaixo, ver qual deseja usar
e, em seguida, clicar
e arrastá-la até aqui. Isso é exatamente o que eu
vou fazer por enquanto. Eu quero usar esse
botão quadrado azul, vou clicar e
arrastá-lo até aqui. Agora parece um pouco estranho. Isso porque se você realmente clicar duas vezes
no quadrado aqui, isso é o que eu
criei no Photoshop É um botão muito pequeno. Você pode perguntar: como isso vai ser um botão grande aqui? Isso ocorre porque o motor
é muito inteligente. Vai pegar os cantos, depois vai tornar as partes
do meio aqui cada vez
mais longas. Você pode realmente
transformá-lo em um botão. A maneira de fazer
isso é dentro de, nas gavetas,
você deve trocá-la de caixa arredondada para caixa. Então, a margem é 0,5
, que é o máximo aqui. Ao fazer isso, você pode ver
que ele ocupa apenas os cantos e depois alonga
o meio Então parece um botão longo. Agora, quanto à cor, está um pouco errada porque
a tonalidade é cinza Se você clicar nele e
deixar a tonalidade branca assim, ela não terá nenhuma tonalidade Clique em ok, aqui
está o botão agora para
torná-lo um pouco maior. Novamente, lembre-se de que ao
clicar na sobreposição
e clicar em Preencher, você pode clicar na caixa
vertical e redimensionar o botão conforme desejar Assim, vamos
realmente continuar aqui. Se você clicar no botão, deverá executar o
estado pressionado também
deverá executar o
estado pressionado e o estado pairado, mas para facilitar, clique com o botão direito do mouse e
copie o normal Você pode clicar com o botão direito do mouse e colar
na parte superior do tesouro. O que você pode fazer
também é um atalho. Se você segurar a tecla shift,
também poderá ver o atalho. Se você clicar com o botão direito do mouse
aqui, dirá copiar segurar a tecla Shift e pressionar
o botão direito do mouse. Desloque o botão direito do mouse e, em seguida,
deslize para a esquerda, para a esquerda do mouse. É assim que você cola. Agora, para o tesouro
e o prensado, quero mudar a
imagem, a prensada Agora você tem um
estado normal, um estado flutuante
e um estado pressionado.
Ok, foi isso. Vamos compilar e
salvar tudo agora, vamos ver se
precisamos fazer alguma coisa Clicando no texto. Agora vamos mudar o texto. Nós baixamos essa rubiana
para o texto, vou
alterá-la para esfregar em negrito, talvez para o tamanho Acho que 24 é muito grande. Deixe-me mudar para
algo como 18. Deixe-me dar um esboço. Se eu clicar
nas configurações de contorno
aqui na frente Configurações de
contorno, vou definir
o contorno para Agora, para a cor, vou clicar, deixe-me ver cor
do contorno está aqui embaixo Então, clicando no zoom de
cor, eu vou pegar
esse seletor de cores e vou escolher a cor
mais escura no botão, que tem esse
contorno adequado Vou mostrar como
você pode dar um efeito interessante ao contorno E você pode fazer isso adicionando
também sombras. Vou copiar essa cor. Clique com o botão direito do mouse
e depois botão
esquerdo Clique aqui para
colá-lo na cor da sombra. Para a cor da sombra,
vou escrever zero sombra do conjunto no x e
vou escrever duas no y.
É como
se fosse o plano de fundo da enquete e parece que o texto
foi retirado do botão, o que parece legal na minha opinião Agora precisamos empurrá-lo um pouco para cima
, porque
parece que não está no meio
do botão. Clique aqui, subindo no preenchimento O preenchimento, aliás,
é onde você pode empurrar
o texto para a esquerda e para a
direita, para cima e para baixo. Agora vou empurrá-lo de baixo ou configurá-lo para
quatro, algo assim. Acho que agora
parece que está no meio. Às vezes, gosto de
desativar as linhas tracejadas, para que possamos ver como ficam clicando nas linhas
tracejadas aqui em cima Eu gosto de ver isso.
Sem nenhuma linha de traço, você pode ver sua aparência Eu acho que isso está ótimo. O que podemos fazer é clicar nesse texto. Podemos chamá-lo simplesmente de Create Sera. Esse é o primeiro
botão que vamos
criar . É Create Sera O que podemos fazer é
clicar nessa sobreposição. Podemos clicar no controle
D para duplicar o controle D novamente para duplicar outro. Vamos
torná-lo maior. Vamos clicar na
caixa vertical, aumentá-la. Preciso dar um pouco de
espaço entre os botões. Vamos fazer isso. Vamos clicar
no Overlay Hold Control E clique em todas
as sobreposições aqui. Então, temos todos eles selecionados. Podemos fazer as edições de uma só vez. Não precisamos fazer
isso de novo e de novo. Aqui, novamente, o espaçamento
está no preenchimento, exatamente o que fizemos com
o texto aqui Vamos dar isso ao topo. Vamos colocar seis no
preenchimento até a parte inferior. Vamos colocar seis
no preenchimento também. Há um pouco de
espaço aqui dentro. Agora vamos tornar esse
tamanho um pouco melhor. Clicando na caixa vertical, vou gravá-la para
algo assim O que você desejar,
tente fazer ao seu gosto. Na verdade, não há uma regra aqui. Em seguida, clique
na caixa vertical e você também pode recitar
essa direção Acho que algo
assim é legal, que o que podemos fazer agora é
clicar na caixa vertical. Novamente, as posições x e
y precisam ser zero, para que sejam centralizadas
assim Agora vamos mudar a
cor desses botões. Para fazer isso primeiro,
vamos alterar o texto para
dizer servidor conjunto, o último para sair. Agora você pode, é claro,
tê-lo na mesma cor, mas também vou mostrar como mudar as cores. Vou minimizar isso um pouco aqui. Nos botões novamente, vou selecionar o roxo. Agora, clicando neste botão de servidor
conjunto, clicando no normal,
eu entro aqui. E agora você mudou de cor. Lembre-se de fazer isso também
ao passar o mouse e pressionar,
então vou segurar a tecla Shift, clicar com o botão direito do mouse e , em
seguida, clicar com a
tecla Shift e clicar com o botão esquerdo sobre eles Lembre-se de selecionar
o estado do mouse
e o estado pressionado Para o último, vou
usar o botão vermelho, copiar e colar nos outros, alterá-lo para o estado focado
e pressionado Agora temos isso. Vamos
mudar o contorno também. Clique aqui, clique
na Cor do contorno, clique em Seletor de cores e
selecione a cor mais escura Vou clicar em
voltar, segurar a tecla Shift, clicar com o botão
direito, segurar a tecla Shift, clicar com o botão
esquerdo para colar. E fazendo a mesma
coisa aqui embaixo, clique aqui, cor,
selecione a cor escura. E então eu vou clicar com o
botão direito do mouse, mudar o botão esquerdo para colá-lo. A última coisa que precisamos
fazer é adicionar o nome aqui, porque eu queria dizer
bem-vindo e depois seu nome. Vamos fazer isso agora. Para fazer isso aqui,
não precisamos realmente
adicioná-lo dentro
da caixa vertical. É um elemento por si só. Aqui em cima, quero sobrepor uma imagem ou texto
em cima de um plano de fundo, um texto em cima de uma imagem Primeiro, precisamos de uma sobreposição. Pode arrastá-lo para
o painel da tela. Vamos ver onde está. Está aqui
em cima. Normalmente aqui em cima. Quando a adicionarmos, vamos adicionar
uma imagem à sobreposição. E então vamos adicionar um pouco de texto. Na verdade, em vez de
adicionar um texto daqui, posso simplesmente copiar um deles para que não precisemos
desenhá-lo novamente. Vou colá-lo
em cima da sobreposição. Agora, para a imagem, eu queria preencher
a coisa toda. Preencha-o horizontal e
verticalmente até essa sobreposição. Vamos clicar nessa sobreposição. Vamos mudar o ponto de ancoragem
para o meio superior. Novamente, se você escrever
00 no x e y, você pode ver que vai
para esse canto. Então você tem que jogar com
o alinhamento novamente. E é 0,5 aqui. E vamos clicar
agora na imagem. Vamos mudar o pincel
da imagem, a imagem em si. Agora vou para Imagens. E eu vou,
deixe-me importar esse painel, clicar em
cinza e arrastá-lo para
aqui novamente, como antes. Vamos transformá-lo em uma caixa. Vamos alterar a margem para 0,5 Agora vamos clicar no texto. Para ver o texto,
vou clicar aqui. Pegue a cor, escolha,
selecione essa cor. Deixe-me clicar
na cor e torná-la da, algo assim. Brincando um pouco com isso, acho que vou usar
essa cor aqui. Você pode copiá-lo se quiser. Vou copiar isso aqui para a cor da
sombra também. E agora vamos diminuir o zoom. Deixe-me dar um
pouco de espaço no painel
da tela,
porque você pode ver que está no topo da borda aqui. Eu clico na
sobreposição e dei espaço aqui no
Y, apenas um pouco de espaço Acho que vou escrever algo
como 40 no limite aqui. Ao clicar na sobreposição,
você pode, novamente, redimensioná-la para o que
desejar, bem como para o texto Acho que está demais na parte superior porque, lembre-se de que,
para os botões, adicionamos um preenchimento. Clique nele. Eu vou dizer
algo como dois. Pode custar um dinheiro
porque você pode ver se eu realmente escrevo um nome longo, você pode ver que ele escreve assim. Vamos
realmente consertá-lo. Ao clicar no
texto, vou
centralizá-lo no meio da justificativa. Também clicando nesta imagem, ou na verdade no Ovallay Vou clicar
em Tamanho para conteúdo. Parece que é assim. Em vez de dar a eles um
tamanho aqui no tamanho da imagem, o que podemos fazer, já que estamos
dimensionando isso de acordo com o conteúdo, podemos clicar no texto
aqui no preenchimento Se você der um tapinha
suficiente para a esquerda , você pode
dar um pouco de espaço Se você dar um tapinha, por
exemplo, em algo como
50 para a direita também, você pode dar um pouco de espaço
para a esquerda e para a direita A mesma coisa para a parte superior e a mesma coisa para
a parte inferior também. Mesmo se você escrever um
texto longo ou caber um pouco mais, você pode ver que ele é redimensionado
para qualquer que seja o texto Nós não fazemos com que ele mude para a esquerda e
para a direita. Na verdade, vou escrever 40 em vez disso, acho que é demais. Com 50 para este, vou escrever 22 na parte superior e 21 na parte inferior aqui. Eu acho que isso está ótimo. Isso é o que parece
e o que poderia dizer. Por exemplo, hello in. Agora vamos programar isso porque esse nome aqui, por exemplo,
será exibido, dependendo do
nome no Steam. Para este,
vou apenas dizer olá, Steam. E podemos alterá-lo mais tarde
e ver o que diz. Vamos sair e compilar, e vamos salvar tudo E agora
terminamos com a interface do usuário. Quase a última coisa que quero dizer é se você
clicar no texto aqui e se você for até
Visibilidade sobre o que
é agora, se
tentar clicar no botão aqui, o texto bloqueará seu mouse e você não
conseguirá clicar no botão. Não quero isso. Vamos
selecionar esse texto. Mantenha o controle. Clique também
nos outros textos, todos eles para ver a visibilidade. Altere-o para não clicar em Testável. Isso significa que
o mouse ignorará o texto. E você pode realmente passar
o mouse sobre o botão sobre esse texto e também clicar no botão
na parte superior desse texto Isso é o que queremos. Ok, foi isso. Vá em frente, compile
e salve tudo. E agora vamos
fechá-lo e seguir em frente.
13. Animação de interface de usuário de nome do jogador 2.04: Agora vamos continuar
trabalhando com animação. Se você abrir o, me
transformou em um novo, mais
uma vez dentro daqui, o que eu quero fazer é
animar essa parte do nome Onde eu quero que essa interface passe o mouse lentamente
para baixo
e para cima, é a sobreposição
que precisamos animar Onde podemos ver
aqui na posição Y. Eu queria fazer
algo assim aqui, e precisamos animá-lo Vou voltar
para 40 aqui no y. Vamos abrir a aba de animação. E você pode fazer isso aqui embaixo. Se você clicar nele, eu
vou clicar em Layout, para que eu possa vê-lo o tempo
todo aqui. Vou clicar no botão
Mais para ver a animação. Vamos chamá-lo de nome do jogador. Vamos clicar nele. Agora você
precisa clicar na sobreposição Deixe-me renomeá-lo
para que você possa vê-lo. Vou
renomeá-lo como V para Overlay
e chamá-lo de Nome do Jogador E vá em frente e compile.
Agora, para isso aqui, clique na sobreposição Para o nome do jogador,
clique na faixa aqui
e, em seguida, você poderá vê-la sempre que selecionar aqui, clique nela, clique no
sinal de adição e selecione Transformar. A transformação é basicamente
onde você pode editar
a posição, a rotação,
a escala e assim por diante. E queremos editar
a tradução, a posição dela
no x e y, ok, aqui no gráfico, vamos colocar, são segundos. Se eu colocar, por exemplo, 1,5 segundo aqui, posso
brincar com isso aqui, talvez arrastá-lo para baixo. Acho que 15 é o suficiente. Você pode ver agora no
zero que é assim. Se você arrastá-lo para 1,5 segundo,
ele estará aqui embaixo. Eu quero que suba novamente. Depois de 1,5 segundos novamente, quero que seja zero novamente. Agora, se eu clicar em Space View, a animação, aqui está. Se eu clicar em Espaço novamente,
você poderá vê-lo novamente. Vamos apenas fazer
com que seja repetido. Você só precisa de uma moldura como essa e vamos
fazer com que ela se repita para sempre. Está bem? Se você não quiser
ter uma animação suave, você sempre pode vir aqui, selecionar tudo com o botão direito do mouse e torná-lo linear. Quando você faz isso, não
suaviza os pontos aqui. Ele se move de
forma linear como essa. Você vê que não está suavizando
quando sobe e desce. Se você quiser suavizar, clique com
o botão direito do mouse e
selecione cúbico automático e isso suavizará um ok. Vou continuar com isso e, na verdade,
terminamos. Se eu for para o gráfico, agora aqui está a codificação. Vamos deletar esse
e deletar esse. Vamos deletar tudo o que eu
posso te mostrar como fazer isso. Se você clicar com o botão direito do mouse
aqui no gráfico e pesquisar por constructo. A construção do evento é simplesmente o que deve acontecer quando eu
clico em Jogar aqui. Quando eu faço isso,
isso é um evento no blueprint e você precisa de
eventos para executar o código Vamos reproduzir a animação. Você pode ver a animação aqui. nome do jogador que
criamos Clique no nome do jogador que
criamos e arraste-o até aqui. Agora arraste a partir daqui
e toque com a direita. E você pode ver essa
função chamada lay animation select
conectada aqui. Agora, a quantidade de loops, vou defini-la como zero
e isso significa que ela
repetirá uma quantidade infinita de
vezes q e compilará Em vez de clicar em Jogar
como um jogo independente, vou selecionar a nova janela do editor de visualização porque é muito
mais rápido abri-la aqui É claro que ainda
não podemos ver a interface do usuário, mas a animação está funcionando. Posso dizer que, no entanto, você ainda não pode vê-la porque não
adicionamos a interface do usuário, o menu principal à tela,
por que não podemos vê-la. E é nisso que
vamos trabalhar nas
próximas aulas. Vamos realmente seguir
em frente e fazer isso.
14. 2.05 Criando a enumeração: Para começar, o que
eu quero que você faça é criar algo
chamado enumeração Podemos usar isso posteriormente para programar como mostramos ou exibimos
a interface do usuário no Viewpoard Vamos ver as plantas
daqui. Quero que você clique com o botão direito crie uma nova pasta chamada Enums Eu já tenho um
da programação do curso dentro
dessa pasta. Não preste
atenção em tudo isso. Nós realmente não precisamos
disso para este curso. Vamos clicar com o botão direito do mouse para criar uma nova enumeração do blueprint.
Vá em frente e selecione um. Vamos chamá-lo, vou chamá-lo de algo
como widgets do menu principal O que é uma enumeração. Se você abri-lo, é
basicamente apenas uma lista de itens que você pode adicionar à
lista clicando aqui. E você pode adicionar
o que quiser. Se eu clicar algumas
vezes e adicionar itens, por exemplo, pode ser
uma lista de qualquer coisa. As enumerações são apenas listas. Pode ser uma lista de compras, lista de tipos de pontos
em seu jogo,
lista de tipos de armas Nesse caso, estamos
usando isso para uma lista de quais widgets você tem no
menu principal. Por exemplo, o próprio menu principal. E então eu tenho o menu
Create Sera. E então eu tenho
o navegador Serva onde posso ver os servidores Eu realmente não
acho que temos mais, mas se você tem um jogo maior, você tem o menu de configurações, você tem o dinheiro. Então, se você tem
microtransações, loja de
dinheiro e assim por diante. Mas nós realmente não
temos isso por enquanto. Eu só tenho o menu principal, Criar servidor e o navegador Serva Vamos salvar essa lista aqui. Agora está pronto. Você também pode ver os outros do meu jogo. Por exemplo, o
tipo de arma Eu tenho tipos de arma pistola e
rifle desarmados Novamente, pode ser uma lista de
qualquer coisa que você possa imaginar. A enumeração é basicamente
apenas uma lista de estados de movimento. Por exemplo, aqui
eu tenho uma lista dos meus estados de movimento no jogo. Eu posso correr, andar e me
agachar, e assim por diante. E nesse caso, o que
estamos tentando fazer aqui também
é meu jogo, widgets Dentro do meu jogo,
eu tenho a interface principal,
a interface de seleção de equipe, minha cruz. No nosso caso, estamos usando
isso no menu principal. Temos o
menu principal, Criar servidor e o navegador do servidor. Agora que temos isso pronto, estamos prontos para usá-lo
nas próximas aulas.
15. 2.06 Mostrar e esconder a função de widget: Ok, então este será um pouco mais complexo, mas vou mostrar o melhor método para mostrar e ocultar
a interface do usuário dentro
de um mecanismo vulnerável, para que você possa usá-lo em
todo o seu projeto. Novamente, será
um pouco mais complexo
compreender se você
for totalmente Mas apenas preste atenção. Tente assistir aqui e tenho
certeza que você também pode aprender. Vamos ver as plantas. Agora vamos para a pasta do
menu principal dentro daqui. Lembre-se de que criamos o modo, criamos o
controle de jogo mais cedo
e, geralmente, para a interface do usuário,
criamos dentro do controle do
player. É por isso que o criamos. Vamos abrir o controle do
player. E dentro daqui,
vamos abrir o editor de plantas completo
no controlador do player Vamos excluir tudo
no gráfico e dentro
do gráfico de eventos. Vamos começar agora. O que eu quero que você faça é escrever, clicar e criar um novo evento personalizado chamado este,
Mostrar, ocultar widgets Este evento
mostrará e ocultará nosso widget. Agora precisamos do widget
aqui na entrada, vou adicionar uma variável,
e essa é a enumeração
que Agora, o que eu chamei
na pasta enums, eu o chamei de widgets do menu principal Aqui no tipo de variável, você pode pesquisar os widgets do menu
principal, quer que você os chame,
vá até e selecione-os Vou
chamá-lo apenas de widget. Basicamente, o que eu gostaria mostrar a você qual função
basicamente queremos usar. É melhor entender
desde o início. Vamos clicar com o botão direito aqui e pesquisar algo
chamado criar. Widget é a função
que vamos usar. Se você clicar aqui e
selecionar, por exemplo, o widget do menu principal que criamos Estamos tentando criar esse widget do menu principal e
adicioná-lo à tela Isso é simplesmente o que
estamos tentando fazer agora. Estamos fazendo isso de uma forma
inteligente que pode ser escalada
dinamicamente para toda a interface
do usuário futura que Esta é uma
função muito inteligente aqui embaixo, queremos mostrar e ocultar o widget Vamos adicionar outra variável. Vamos adicionar um lingote, que é apenas a variável verdadeira ou falsa Aqui, vamos chamar isso de show. Se você chamar esse evento, se eu posso
dizer corretamente, mostre o widget de ocultar E eu chamo esse evento aqui. Aqui você pode ver
como fica quando eu o uso
em outro lugar. Agora eu posso verificar qual
widget eu quero usar,
por exemplo, o Create Serva Então eu posso escolher se
eu quero mostrá-lo. Se eu não fizer isso, quero fechá-lo. É por isso que se chama
show hide widget. Eu mostro se eu marcar aqui, e eu escondo se eu
não marcar aqui. Agora podemos escolher qual
deles queremos efetivar. Por exemplo, você quer
mostrar o menu principal? Ou você quer
fechar o menu principal? É assim que o usamos aqui em cima. Vamos sair daqui
e fazer um galho. Se o ho for verdadeiro, queremos fazer alguma coisa. Se o “como” é falso, queremos fazer outra coisa. Eu quero aqui criar
duas funções. Vamos clicar no sinal positivo
dessa função. Essas são as funções personalizadas que
vamos criar. O primeiro será chamado, gosto de escrever como
prefixo para minhas funções Vamos chamar isso de widget. Vamos criar outro
chamado hide widget. Vamos voltar
ao gráfico de eventos e arrastá-los até aqui. Mostrar widget e ocultar widget. Agora, qual widgit
vamos mostrar? Esse que conectamos mais tarde
quando chamamos a função. No entanto, precisamos
ter uma entrada aqui, para que possamos dizer que é
esse widget aqui Vamos clicar no widget
show one. Vamos adicionar uma entrada. Vamos mudar isso novamente
para o widget do menu principal. Essa é a enumeração. Vamos selecioná-lo e
chamá-lo de widget. O mesmo para
o widget de ocultar. Qual widget você deseja
ocultar? É esse. Vou clicar aqui, fazer uma entrada e
chamá-la de widget Agora podemos clicar e arrastar isso para as
entradas que criamos Agora ele vai
entrar aqui e podemos fazer
algo com ele. Isso é basicamente o fluxo. O fluxo está em algum lugar do código em que podemos mostrar
ou ocultar o widget Digamos, por
exemplo, que mais tarde
queiramos que ele oculte o menu principal. Podemos escrever, clicar e
dizer mostrar ocultar widget. Você pode convocar este evento aqui. Então, podemos dizer que, no menu
principal, eu quero dar um oi. Isso é o que parece, porque eu não marquei isso O que ele vai fazer é
dizer que isso é falso. Se for falso, ele
ocultará o widget. De qual widget
estamos falando? Estamos falando sobre
o menu principal. Porque foi isso
que você disse, o menu principal vai
passar por aqui. Vou passar por aqui, dentro dessa função. E agora podemos fazer alguns códigos
aqui para o widget show. Eu quero sair daqui e
dizer para ativar a enumeração. O que ativa a enumeração é que você pode fazer
algo
dependendo da seleção que você fez
dentro dessa Por exemplo, se você selecionar
o menu principal aqui, ele estará no widget de exibição Reproduza o código do menu principal e ele ignorará
todos eles aqui embaixo. Digamos que, no menu principal, eu marquei aqui o verdadeiro Isso significa que eu quero
mostrar o menu principal. Precisamos, novamente,
usar esse widget. Isso é o que estamos
tentando usar. Vamos excluí-lo aqui.
Vamos até o widget do show E aqui no menu principal, posso arrastar e dizer criar
widget. Vamos selecioná-lo. Qual widget eu
quero criar? O menu principal que criamos, então eu posso clicar com o botão direito do mouse e promovê-lo para uma variável. Assim, posso salvá-lo aqui
e chamá-lo de menu principal. Agora, apesar de termos
criado a variável, ela ainda não é exibida
na tela. Isso ocorre porque temos que
arrastar a partir daqui e dizer Adicionar à janela de exibição Vamos
adicioná-lo ao Viewport e agora ele deve funcionar Se eu compilar e
clicar em reproduzir, você pode ver que ainda não está funcionando Isso ocorre porque, no blueprint, se você já sabe
que temos que convocar esse evento, ele não acontecerá sozinho O motor não sabe que
você quer realizar esse evento. O que vamos fazer é
no evento ou até mesmo construir. Agora estamos no controle de
jogo. É jogar o evento. Este é um evento que
diz o que deve acontecer. Quando eu começar a jogar, quero mostrar o dragão do menu
principal daqui chamando o evento show
hide widget aqui E eu vou
selecionar o menu principal. E eu quero mostrar
o menu principal. O que ele vai fazer é
passar por aqui. O widget no menu principal
será conectado aqui e está configurado
para mostrar se é verdadeiro Ele vai mostrar o widget, seleção aqui
foi
o menu principal Ele vai criar tudo isso e adicioná-lo
à janela de exibição Agora, se você clicar em reproduzir, agora poderá ver que ele foi
adicionado à janela de exibição Você também pode ver
que a animação está funcionando para o nome e
que tudo está bonito. Você pode passar o mouse sobre os botões, clicar neles para ver se
fez isso corretamente e está tudo bem Essa foi a primeira
interface de usuário que você adicionou. E muito bom,
você conseguiu muito, porque essa foi realmente
a parte difícil. Agora, a parte final
é ocultar o widget. Vamos entrar aqui
novamente, a partir daqui, e dizer ativar a enumeração Sempre que selecionamos ocultar
aqui em vez de mostrar
, o que eu quero
fazer é ocultar, quero usar essa variável
que criei para o menu principal. Vou clicar com o
botão direito do mouse e converter isso em um get validado O que isso faz é
garantir
que essa variável seja válida
antes de fazermos qualquer coisa, antes de removê-la
da tela. Porque não
faz sentido remover isso da tela
se não for válido. Porque não é, vamos pegar isso e dizer remover dos pais. É assim que o
removemos da janela de exibição. Sempre que essa variável for válida, queremos
removê-la da tela. Também queremos fazer a mesma
coisa no widget show, vez de apenas
criá-lo o tempo todo Isso será um erro,
porque sempre que eu for
ao servidor de criação e
volto ao menu principal, ele realmente
criará o menu principal novamente. E eu não quero
fazer isso o tempo todo. Vou pegar essa
variável que criei aqui. Vou escrever, clicar e converter isso em um get validado Então eu vou
conectá-lo aqui. Se for válido, não
quero criá-lo. Se não for válido,
quero criar esse widget porque ele ainda não
foi criado Se for válido, eu só quero
adicioná-lo à janela de visualização. É muito melhor fazer isso. Estamos verificando se isso é válido. Se não estiver, vá em frente crie-o e
adicione-o à janela de exibição Se já for válido, basta
adicioná-lo à janela de exibição Vamos compilar e
salvar tudo, e agora terminamos com essa função e evento complexos Agora vou explicar
isso muito, muito rapidamente. Se selecionarmos, por
exemplo, criar serva. Selecionamos show, vamos
selecionar Serva aqui. E vai
dizer que o programa é verdadeiro. Então, ele vai executar
essa função aqui em cima. E já sabemos que a
seleção é o portão Serva. Então, ele reproduzirá o
código na criação do Serva e criaremos
a mesma coisa mais tarde Você pode criá-lo
você mesmo, se quiser. Na verdade, esse é o
mesmo método que esse. E lembre-se também de
adicioná-lo ao Hyde, mas faremos
isso na próxima lição Vamos compilar por enquanto, salvar tudo e
seguir em frente Agora vamos selecionar
novamente o menu principal. Então, se funcionar, podemos
garantir que tudo esteja funcionando. E vamos
para a próxima lição.
16. 2.07 Comunicação de blueprint - fundição: Tudo bem, agora vamos continuar. Vamos abrir a interface com a qual
estávamos trabalhando anteriormente. E era a
interface do usuário do menu principal aqui.
Vamos ao gráfico. O que eu quero fazer agora é que, aqui no designer, sempre que pressiono o botão
do Create Sera, quero abrir o widget Create
Sera para fazer Primeiro, aqui no
botão, vamos chamá-lo,
por exemplo, de servidor de botões, sabemos com o que estamos trabalhando. Vamos configurá-lo como variável. Se não for variável
aqui no gráfico, você não poderá vê-la
e não poderá fazer nenhum código com ela.
Se você configurá-lo como variável e
acessar o gráfico, você pode ver, agora você
pode ver o botão. Você pode clicar no
evento aqui em clicked. O que deve acontecer
quando você clica no botão? Isso
é o que nós queremos. Queremos mostrar o widget
que ainda não criamos, mas isso não é
muito importante por enquanto Vamos voltar ao gráfico. Agora eu quero mostrar meu widget
create sera. Lembre-se de que,
na última lição, criamos dentro do controle do player do menu
principal, criamos esse widget
show hide Preciso usar essa função
aqui, esse evento aqui. Preciso ligar para ele
do menu principal. Quando pressiono o botão
criar servidor, quero mostrar o widget Agora estamos dentro de algo chamado de
modelo de comunicação Porque agora a planta
aqui, o menu principal, está se comunicando com
o controlador do player, duas plantas estão
se comunicando Para fazer isso, temos que
usar algo chamado Casting the player controller. O que preciso dizer primeiro
é que preciso escrever clicar e dizer obter o controle
do player. Então eu posso selecionar
essa função aqui, então eu posso arrastar a partir daqui. Agora, este é o
controle de jogo padrão no motor Naral. Agora devo dizer que
quero
usar especificamente meu controlador de jogo personalizado
e esse é o custo. Dois significa lançar dois e depois escrevo o nome
do controle de jogo. Menu principal do PC. Agora, basicamente,
dissemos isso pegue o controle de jogo padrão e, em
seguida, quero usar especificamente meu controlador de jogo
personalizado. Agora, quando lançamos
aqui a partir deste pino, posso usar o que estiver dentro
do controle de reprodução. Se eu criar uma nova
variável, por exemplo, e chamá-la de hello, digamos que seja uma
variável do tipo transformação e eu compilo Agora, se eu entrar aqui
e arrastar e dizer olá. Agora eu posso ver essa variável de
transformação. Eu posso usar o que estiver dentro
do controle do player. Deixe-me excluir
essa variável por enquanto. Posso usar esse
widget mostrar ocultar que posso arrastar
daqui e dizer mostrar ocultar widget E agora eu posso usá-lo para exibir o
servidor de criação desta forma. Agora, há um problema
com esse método. O elenco, se você já conhece, elenco tinham
referências e o Unreal Engine E isso significa que o
Unreal Engine precisa carregar todas as referências
concretas ao abrir o jogo E é por isso que às vezes em jogos, se for, por exemplo, criado no
motor Naral, leva,
digamos, 10 segundos, 15 segundos para
abrir o menu principal Isso ocorre porque
ele precisa carregar todas as referências físicas antes de
poder carregar o menu principal. Tentamos evitar fazer o
casting o máximo possível. Há períodos em
que precisamos usar o casting, mas muitas vezes
podemos evitá-lo. E, nesse caso, também
podemos evitá-lo. Podemos evitar que fosse algo chamado interfaces de blueprint Vamos prosseguir na
próxima lição e dar uma olhada no que é uma interface de
blueprint
17. 2.08 Comunicação de blueprint - interfaces: Para evitar a hospedagem e evitar
a referência oculta, vamos criar
uma interface de esquema Vamos fechar isso na pasta
do blueprint novamente, vamos clicar com o botão direito do mouse em criar uma nova pasta e
chamá-la de interfaces Eu já fiz aqui uma pasta de
interface porque a
usei no meu projeto Counterstrike e já fiz
algumas delas. Vamos clicar com o botão direito do aqui e ir para o Blueprint e criar uma
interface de plano para este Eu só vou chamá-lo, vamos chamá-lo de qualquer coisa a que estamos
tentando nos referir. Estamos tentando fazer referência
ao controle do jogador porque
queremos usar
o evento dentro do controle
do jogador. Deixe-me chamá-lo de controlador de menu
principal. Vamos abrir a interface do
blueprint. A função que queremos usar. Agora, dentro de uma interface de
blueprint, você realmente não pode fazer muita coisa Você não pode mover essa função, você não pode direcionar a partir daqui, você não pode fazer nada
dentro daqui. A única coisa que você
pode fazer é criar uma nova função para
a nova função. Digamos que seja uma referência de controle. Isso é basicamente o que
você está tentando fazer. Agora, aqui na saída, vamos continuar e
criar uma variável. E o tipo de variável aqui é o que você está
tentando referenciar. Estou tentando fazer referência
ao controlador do player. Vou procurar um PC. Para o controlador do Player, eu o
chamei de
menu principal Play Control. Neste menu principal em C,
selecione Referência de objeto. Vá em frente e ligue aqui. Vamos compilar. E agora
terminamos aqui dentro. Fácil. Vamos fechá-lo. Vamos voltar às plantas. Abra a
pasta do menu principal e abra o controlador do player do menu principal. Agora temos que adicionar a
interface que acabamos de criar. Vamos para as configurações da aula. Vamos às
interfaces implementadas. Deixe-me pesquisar o controlador do player do
menu principal que acabei de criar. E
vá em frente e adicione-o. Agora, preste atenção
ao adicioná-la, você verá uma nova
barra aparecendo aqui. Se eu adicioná-lo, você pode ver essa barra de
interface aparecendo. E eu posso abrir a função de controle
do player. Essa é a função
que acabamos de criar. Agora você precisa definir qual é
essa variável
que você criou. O que podemos fazer é arrastar e dizer “eu”. E vá em frente e selecione
essa autorreferência. O que isso significa, variável
de controle do jogador que você criou. Você tem que definir isso. Porque se você segurar Alt e
clicar aqui para desconectá-lo. Se você não definir isso, Honorable Engine
apresentará um erro e
dirá: não
sei o que você quer dizer essa variável vazia do
controlador de jogador A razão pela qual
dissemos uma autorreferência é porque eu significa
qualquer projeto em
que você esteja agora No momento, lembre-se de que estamos no menu principal
do controlador do Player. O que estamos dizendo é que essa variável
do controlador de jogador é nosso controlador de jogador principal. Vamos compilar agora. Vou explicar tudo
para você no final. Vamos continuar.
O que podemos fazer agora é voltar
para, vamos minimizar isso. Vá para a interface do usuário, volte
para o menu principal. Vamos abrir o gráfico novamente. Em vez de transmitir,
vamos deletar isso e agora obter o controle de reprodução,
exatamente como antes. Então, em vez de dizer custo dois, agora
podemos dizer referência ao
controle de jogo. É assim que a chamamos. Agora esse. Não se
confunda. Isso é do mapa principal do jogo
Counterstrike. Essa é a que criamos, a interface do controlador de menu. Você também pode ver que é uma função de
interface porque diz mensagem no final
e você pode clicar nela. E isso também é o que
esse ícone significa. Isso significa que vem de
uma interface de blueprint. E vá em frente e
conecte-o aqui. E agora, a partir disso,
podemos simplesmente conectá-lo aqui. Ou se você quiser
excluí-lo e fazê-lo novamente, você pode arrastar a partir daqui
e dizer mostrar ocultar widget, e você pode sair e
selecioná-lo desta forma E agora você pode ver que evita fazer casting e
evita ocultar referências Só para melhorar um pouco, vou clicar no controle X
para recortar isso daqui e adicioná-lo
à construção do evento. Se eu afastar isso, mantenho a tecla Alt pressionada e clico aqui para desconectar
o controle V e colar este Vá em frente e
conecte-o. Clique com o botão direito aqui, promova este
controlador de reprodução em uma variável e
chame-o de controlador de reprodução. Vá em frente e conecte-o
novamente aqui, a animação. Agora, para este controlador de jogo, nós o tornamos muito
mais limpo usando apenas essa variável do controlador de jogo. A partir daqui, podemos simplesmente
dizer mostrar ocultar widget. E podemos usar essa função
em vez de fazer tudo isso o tempo todo em
cada instância aqui embaixo. E basta pegar a
variável agora e
podemos chamar o evento de
muito mais limpo. Agora que terminamos com isso, vou explicar todo
o processo para
você antes de continuarmos. Se foi um pouco
difícil de entender, eu sei que interface é um
assunto difícil para iniciantes, vamos dar uma olhada rápida. O que fizemos foi basicamente
ir para a pasta do blueprint. Criamos uma
pasta de interface e criamos nossa interface do menu principal clicando com o botão
direito do mouse no blueprint, blueprint dentro dessa interface
do blueprint,
obtendo a referência do controlador do player O que estamos tentando
fazer é obter a referência dos
controladores do player aqui no menu principal Porque o evento que precisamos
usar está aqui dentro. Precisamos nos referir a isso. Eu aqui na interface do
blueprint, eu criei isso para a saída Você precisa criar uma variável. E o tipo de variável é o que você está
tentando referenciar. Estamos tentando fazer referência
a um Player Controller. Lembre-se de selecionar o menu principal do PC. Isso é o que eu chamei de
meu Player Controller. Agora você precisa
adicionar essa interface ao Player Controller. Eu clico nele, você
vai para Configurações, eu adiciono minha interface. Essa guia será exibida. Essa é a função
que você criou aqui. Dentro da interface. Você entra aqui e depois precisa definir
o controlador splat Lembre-se, essa variável é
o que você criou aqui embaixo. Você tem que
defini-lo porque se eu agora desconectá-lo e
tentar usá-lo, isso me dará um erro E dirá acesso não. Acesso não significa que essa variável está vazia e eu não sei
o que fazer com ela. Este é basicamente um mecanismo
real dizendo que você precisa usar a
autorreferência, porque agora estamos dizendo que essa referência ao
Player Controller é esse Player Controller em
que estamos agora. É isso que o ego
quer dizer quando fazemos isso. Agora podemos ir para a interface
do usuário do menu principal. Podemos ter uma referência ao controle do
player feita pelo Ting, o controlador de jogo padrão. E então estamos dizendo que
queremos usar nosso próprio controlador de player,
que é esse. Agora nós o temos aqui e o
promovemos para uma variável. Agora podemos usar a
variável para chamar esse evento aqui
no gráfico de eventos do controlador
do player. E isso é o que
estamos fazendo aqui. Vamos dar uma olhada na próxima lição e programar o menu principal.
18. 2.09 Programando o menu principal: Tudo bem, bem-vindo de volta. Agora estamos prontos para
programar o menu principal. Sempre que clicamos
no botão Criar Sera, o que queremos fazer é ocultar o menu principal Isso está correto, o menu principal. Em seguida, queremos mostrar a interface
do usuário do Create Sera. Vou arrastar
isso daqui para baixo. Mostre o Hide Widget mais uma vez, vá em frente e conecte-o Então eu quero mostrar
o Create Server. Vamos clicar duas vezes
nele, assim mesmo. E o que você pode fazer
é
selecioná-los e pressionar Q
no teclado. Isso vai resolver as coisas. E agora nada realmente vai acontecer aqui
no servidor de criação. Porque lembre-se, dentro
do controle do player, se você clicar na função de exibição do
widget que você criou Ainda não fizemos
nada aqui para o navegador de criação do servidor e do navegador do servidor de
exibição. No entanto, ele ocultará o menu principal, então
sabemos que está funcionando. Se isso acontecer, isso foi para o servidor Create.
Vamos clicar em Jogar. Você pode ver que não consigo
pressionar, meu mouse desaparecia sempre que eu
clicava no jogo Vamos para o controlador e vamos para os padrões de classe Vamos clicar nesse
chamado show mouse cursor. Está ativo o tempo todo. Vamos
compilar. Vamos clicar em jogar. Agora eu posso ver meu
mouse o tempo todo. Eu clico em Criar Serva, você pode ver meu
menu principal desaparecer Na verdade, estou mostrando
o navegador Serva, ou Create Serva, que ainda não
criamos Agora isso está funcionando.
Vamos continuar. Vamos para o próximo botão. Para o próximo botão,
vou
chamá-lo de button join Serva,
enviando-o para uma variável para que eu
possa codificar com ela E indo até o gráfico,
clique no botão, clique no clicado, vamos copiar tudo
isso para que não precisemos escrevê-lo novamente para o primeiro Novamente, oculte o menu principal, mas mostre o navegador Sera Este é o servidor
conjunto do último, vamos clicar no
botão. Vá em frente e faça com
que seja variável. Agora, no gráfico em que vamos
clicar, é clicado aqui. Para sair, temos
uma função simples chamada sair do jogo e a selecionamos. Era um jogador específico. Eu só vou dizer controlador de
jogador. Selecione Controlador do player. E esse é o jogador que queremos sair do
jogo e compilar Vamos agora clicar em
Jogar. E é isso. Sempre que clicamos em sair do jogo, sempre que clico em Entrar no Serva, ele vai para o navegador Serva que ainda não criamos Tudo está correto. Agora, o que você pode fazer é juntá-los,
fazer com que pareçam melhores. Você também pode selecionar
alguns deles. Clique em C no teclado
para criar um comentário. Por exemplo, você pode
dizer, Joinva Logic. Você pode tentar fazer comentários. Você pode até mesmo mudar a cor
do comentário, o que
quiser. Tente se manter o mais organizado
possível. Eu vou fazer isso mais tarde. Então, por enquanto, vou juntá-los
e salvar tudo. E vamos passar
para a próxima.
19. 2.10 Programando o nome do Steam: Vamos agora verificar se o nome também está funcionando. Porque aqui no menu principal, adicionamos este. Olá Steam. Mas o jogo precisa
saber como você é chamado no Steam. Então, vamos voltar
aqui. Vá para a interface do usuário. Abra mais uma vez, a interface do usuário do menu principal aqui dentro. Vamos clicar nesse texto. Vou
chamá-lo apenas de nome da camada de texto. Podemos defini-lo como variável, para que possamos codificar com
ele aqui no gráfico. O que queremos fazer é depois de reproduzirmos essa animação ou, na verdade, antes de
reproduzirmos a animação, fazer isso o mais rápido possível. Aqui, após a referência do
controlador do player. Vamos clicar em Alt e clicar
aqui. Nós o desconectamos. O que queremos fazer é pegar o nome
desse jogador,
arrastá-lo e dizer Definir texto. Isso é basicamente o que
estamos tentando fazer. Vamos selecionar a função, definir o texto e conectá-lo. Agora, em vez de apenas bloquear
o nome e eu
vou mostrar a vocês, na verdade,
antes de fazermos outra coisa, vamos clicar com o botão direito do e pegar o controle do
player. Então, a partir disso, você pode arrastar
e dizer obter o nome do jogador Pode usar este. E é a partir das sessões avançadas, como você vê, jogue um nome e você pode
basicamente conectá-lo aqui. Sempre que você clica em Play, agora você pode ver que me dá
o nome, esse nome aqui. E não há animação porque esqueci de conectá-la aqui Então, vamos clicar em reproduzir novamente. O nome está correto.
Este é o meu desktop porque eu o
estou executando neste aqui. Mas se eu executá-lo como um jogo
independente, novamente, um jogo independente levará um pouco
mais de tempo para abrir É por isso que eu costumo jogar
no outro modo agora. Mas agora você pode ver
quando eu o abro,
na verdade, na minha equipe, você
pode ver que o Steam está funcionando. Diz que me chamo Jinks. E isso é porque esse é
o meu nome no Steam. Agora ele realmente
sabe como me chamo. Deixe-me voltar
para a torta aqui. É muito mais rápido de abrir. Você pode ver que só diz meu nome e
não diz olá. Quando quiser
misturar texto estático com texto dinâmico, você precisa usar algo
chamado formato de texto. Vamos atacar a partir daqui e dizer que
formatamos o texto selecionado aqui. Em seguida, selecione o que
você deseja escrever. Quero escrever olá
e depois meu nome aqui, quero escrever olá. Meu nome é dinâmico. O que você faz é, para texto dinâmico, definir um colchete, vamos chamá-lo de Reproduzir um E então você tem um suporte encaracolado
fechado. Você abre e fecha. Quando você fizer isso, ele fornecerá uma entrada
aqui para uma variável. O que você pode fazer, vamos
excluir este em uma string. Então, podemos pegar isso agora e conectá-lo aqui.
Agora vai funcionar. E vamos fazer com que
pareça melhor assim. Quando você clica em jogar. Agora você pode ver aqui, diz olá e depois seu
nome aqui. Agora isso também está funcionando, e agora podemos passar
para a próxima lição.
20. 2.11 Como criar o fundo do menu principal: O que eu quero fazer
nesta lição é criar um plano de fundo
para o menu principal. Porque, como você pode ver aqui
, está escuro no fundo, o que é bom. Você pode
tê-lo assim. Mas eu quero adicionar um plano de fundo agora, se você não
quiser fazer isso, vá em frente e a
lição não é importante. Mas se você quiser aprender
como criar um plano de fundo também para o menu principal, você
pode ir em frente e fazer isso. Eu vou fazer isso
por três D agora. Isso é muito mais fácil
para aqueles que seguiram meu curso no Game instruct.com Este curso
aqui, curso de Counterstrike Vou apenas usar o mapa principal que
criamos neste curso. Este é o curso de
tiro em primeira pessoa feito apenas
com o blueprint Também foi muito divertido
fazer isso. Mas, principalmente, o que
vou fazer é copiar tudo isso. E eu vou usá-lo como
o menu principal aqui. Se você fez este curso, o que eu quero que você faça
é clicar aqui, Controle A para selecionar tudo. Controle C para copiar. Então, vamos voltar
ao menu principal. Clique aqui e controle
V para colar tudo. Vamos excluir coisas
que realmente não precisamos. Não precisamos
de todas essas armas. Então, vamos em frente e isso vai tornar isso um pouco maior. Por enquanto, vamos selecionar
a pasta de armas. Acho que não podemos
deletar a pasta, temos que selecionar
tudo nela. Selecione esse turno antigo. Clique no último, exclua, e eu também excluirei
a pasta,
excluindo a câmera do espectador E eu vou deletar todos os pontos de desova, não
precisamos deles. Exclua a pasta também e veja se precisamos. O som está bom. O som está bom. Ok,
nós temos tudo isso agora. A captura de reflexão, na verdade, eu também vou
excluir. Isso não me dá essa
mensagem de que eu tenho que
reconstruir a captura de
reflexão da esfera Eu vou deletar
esse também. Realmente não preciso disso Agora
vamos salvar tudo. Ok, agora esse é o mapa principal. Se clicarmos em jogar, parece
um pouco mais interessante. Agora você pode ver que isso muda onde quer que eu esteja aqui
com a câmera. Na verdade, vamos adicionar uma câmera. Vou adicionar uma câmera
talvez aqui,
assim, para que pareça um pouco interessante. Eu quero que você clique aqui. Clique em Criar câmera aqui e selecione a câmera cinematográfica Agora vamos clicar com o botão direito
na câmera cinematográfica. Toque aqui no contorno
e selecione Pálpebra e selecione Agora estamos dentro da câmera. Agora, quando me movo,
na verdade estou movendo a câmera. Mas eu quero que você faça aqui
na câmera cinematográfica ect, eu quero que você troque
o filme de volta Vou mudar para SLA, vou mudar as configurações
da lente para mudar para 50 milímetros Isso nos dá um fundo
embaçado. Vamos adicionar um personagem aqui
dentro. Vou usar meu
personagem que realmente tínhamos antes fazermos animações aqui Lembre-se de que, se você fez o curso, vou apenas
procurar uma animação ociosa A propósito, você pode adicionar o que
quiser dentro disso. Visualização. Aqui
realmente não importa, é apenas o plano de fundo. Agora, para a escala, era 1,6 porque os caracteres
eram um pouco pequenos. Aqui, podemos mudar a visualização para
talvez algo assim. Eu tenho algo aqui em primeiro plano,
algo interessante Vou diminuir a velocidade da
câmera aqui. Eu não me movo tão rapidamente e
vou me ajustar. Agora, o que eu geralmente faço
é clicar em Janela e Ponto de Vista e abrir
uma segunda janela de visualização No meu segundo monitor, posso realmente ir aqui e mover minha orelha e girá-la
sem afetar a câmera O que eu quero que você
faça aqui primeiro, para a câmera, tente encontrar
uma bela vista que você goste. Clique em 11 para maximizar a
janela de visualização para uma bela vista. Eu só vou
afastar isso. Tente encontrar uma bela
vista da câmera. Sempre que você fizer isso, vá em frente e
clique com o botão direito na câmera aqui. Vamos aqui transformar
e depois bloquear o movimento. Agora você não pode mover a câmera
por engano, porque agora ela também está bloqueada para
a câmera. Vou remover a proporção da
restrição, aqui está. Agora é o que
parece, está ótimo. Agora, o que eu quero que você faça
no segundo ponto de vista, você sempre pode
arrastar esse cara aqui e girá-lo assim Talvez o que você ache que
pareça bom para você. Acho que algo
assim é bom para mim. Eu ajustei o
movimento aqui, a localização e a
rotação, e assim por diante. Mudei a configuração da lente para 85 milímetros para ter mais
desfoque Agora, para
focar, você precisa
ir aqui até as
configurações de foco e
clicar em Draw Debo Focus Plane Em seguida, basta alterar o número, diminuí-lo até ver um plano
roxo como este. E então certifique-se de que esteja
no personagem ou em qualquer coisa em que
você esteja tentando se concentrar. Sempre que está em alguma coisa, você sabe, não está embaçado Vou remover
o plano de depuração agora, e é assim que parece Agora, quando
eu estiver satisfeito, vou deixar esta
câmera clicando aqui. Pare de pilotar o ator, eu estou fora disso. Agora que o plano de fundo
foi criado, vamos prosseguir e
garantir que apareçamos
nessa visualização Deixe-me subir até aqui. O plano do nível. E
o que é o plano de nível é apenas um código específico
para esse nível Não será transferido para
outros níveis dentro daqui. O que eu quero que você
faça é
selecionar a câmera
aqui no Outliner E então eu quero que você clique
com o botão direito, vá em frente e crie uma
referência para esta câmera. Quero que você
clique com o botão direito do mouse e pesquise os alvos de
visualização. Você pode
simplesmente remover isso. Temos que usar esse
chamado Set Target with Blend. Vá em frente e selecione esse. Vamos
conectá-lo agora ao alvo. Digamos que sim, Controller. Vamos descer. E agora, a razão pela qual eu tenho tudo isso agora é
porque eu removo isso. Se eu pegar novamente, lembre-se de marcá-la novamente, você receberá apenas as funções
relevantes. Selecione este. Obtenha o
controle de reprodução mais uma vez. A propósito, antes
que não conseguíssemos encontrar isso porque você
realmente precisava, você tinha que dizer pegue o controlador. Então, a partir deste,
você pode arrastar e dizer Definir meta de visualização com o Blend. E então você pode ver
isso sem fazer isso. Se você fizer isso
sem usar este,
precisará remover o
contexto sensível O novo alvo de visão
é nossa câmera. Deve funcionar muito bem. Acabei de clicar em jogar agora e tenho minha visão em um lugar
aleatório. Eu clico em Jogar. Você pode ver que agora estamos
dentro desse pano de fundo. Vamos agora passar
para a próxima lição e eu vou te ensinar como
adicionar sons a esses botões.
21. 2.12 Adicionando Button SFX: Nesta lição, vou te
ensinar rapidamente como criar
cliques em botões e assim por diante Portanto, temos sons
para seus botões. Vamos continuar na pasta
de conteúdo. Vamos clicar com o botão direito do
mouse e criar uma nova pasta. Eu já fiz isso. Eu tenho
uma pasta chamada audio. Vá em frente e faça
um dentro daqui. Você pode criar uma pasta
chamada efeitos sonoros. Agora eu já tenho muitos deles porque criei esse jogo. Mas deixe-me fazer isso
aqui para você, para que eu possa ver. Agora, o que eu incluí
para você nesta pasta de
materiais do curso são efeitos sonoros. Vá em frente e abra-o e você verá alguns efeitos
sonoros dos botões. Vá em frente e traga-os
até aqui, roube-os. E então você vê que
eles são criados. O que eu quero que você faça é clicar com o botão
direito do
mouse no botão, passar o mouse, por exemplo, e
então você pode criar uma fila Faça o mesmo pressionando
o botão, clique com o botão
direito e crie uma fila. Você pode chamá-lo do
que quiser. Eu costumo ligar para eles
no começo para ouvir o som. Além disso,
vou chamar esse aqui no começo para
ouvir
o som. Aqui está. Agora, ao clicar em
Reproduzir, você pode ouvi-los. Se você quiser reduzir o som, você sempre pode clicar aqui, clicar
duas vezes sobre eles. E então, no multiplicador de
volume, você pode reduzir o som se ele estiver muito alto.
Já fiz esses. Vou excluí-los porque já os tenho aqui dentro,
o botão passa o aspirador, e
o som é 0,15 para Para
pressionar o botão, criei 0.4 Um modulador basicamente faz com que o clique não soe o
mesmo toda vez que você clica Se você quiser fazer um, se eu simplesmente excluir este aqui, é assim que
parece para você. Você sempre pode arrastar
e pesquisar o modulador, selecioná-lo
e conectá-lo aqui E agora você tem um. O que eu costumo fazer no tom
mínimo e máximo, eu escrevo 0,91 0,1 e
você pode testá-lo. Agora, sempre que você clicar em Reproduzir
, deve soar diferente. Sempre que você clicar em
Reproduzir, vamos ouvir. Eles não soam
completamente iguais. Acho que dá
um efeito único. Vamos salvar tudo.
E o que você pode fazer agora é fechar
tudo isso. Você pode voltar à sua interface de usuário
e abrir o menu principal. Dentro daqui, vamos clicar
em um dos botões. E desça até aqui. Você pode ver o som pressionado. Vá em frente e selecione seu som. Eu só vou procurar o
botão. Aqui está o botão. Este é o
pressionamento do botão pressionado e o outro
é o botão passar o mouse Esse funciona. Agora, se você quiser alterar vários
botões ao mesmo tempo, sempre
poderá clicar em um. Mantenha o controle e selecione também o
segundo botão. Você sempre pode fazer
isso mais rápido dessa maneira. O primeiro é pressionado
e o segundo está pairando. Clique em Compilar Agora, quando eu clico em Play, você pode ver que eles têm som. E quando eu clico em um deles, eles também têm um som. Tudo está funcionando
perfeitamente. E vamos seguir em frente.
22. 3.01 Criando o widget de criação de servidor: Agora estamos prontos para criar
o widgit Create Serva. Vamos prosseguir aqui na interface do usuário, abrir o menu principal, clicar com o botão direito do mouse,
acessar a Interface do usuário e criar um esquema de
widget Agora, para este, vamos
chamá-lo de Create Serva. Por enquanto, nós realmente não precisamos fazer nada dentro daqui. Mas lembre-se de que
precisamos consultar as plantas. Abra o menu principal e vá para o controle
de reprodução do menu principal Porque
aqui dentro, se você se lembra, criamos o
widget show hide. No widget do show Vamos entrar aqui. Agora,
assim como no menu principal, você pode fazer isso sozinho no Create Serva se
quiser praticar Se você não se lembra,
vamos fazer isso juntos. Vamos clicar com o botão direito
aqui. Você cria widgets. Vá em frente e selecione. Vamos selecionar nosso widget
Create Serva acabamos de criar. Clique com o botão direito. Promova isso para uma variável
e chame-a de create sera. Vamos atacar a partir
daqui e dizer adicionar à visualização, assim mesmo. Agora, assim como antes,
vou pegar essa variável, clicar com o botão direito do mouse e
convertê-la em um get validado, porque na verdade
não precisamos criar o widgit toda vez que
abrimos o create sera widgit, só
queremos
criá-lo sempre que não for válido na primeira vez, na segunda vez que você
o abrir,
ele será ele Queremos apenas adicioná-lo
ao Viewpoardt antes de
lembrar de conectá-lo ao Create Sera aqui e abrir Agora estamos prontos para acessar a função de
widgit Hyde. Vá em frente e abra isso. Arraste o
widgit create sera até aqui. Clique com o botão direito, converta em
validado, conecte-se. Lembre-se novamente de que remover do pai significa
removê-lo da janela de exibição Afaste-se dos pais
assim. Coloque-os juntos,
crie algum espaço aqui. É sempre bom dizer que está organizado. Vá em frente e salve tudo. Agora deve funcionar. Se você clicar em Jogar e clicar em Criar Servidor, nada acontece. Isso ocorre porque nosso
widget está vazio. Além disso, vamos garantir que o
codificamos corretamente. Se eu for ao menu principal aqui, só
quero lembrar se eu
realmente fiz isso corretamente. Você pode basicamente
clicar no botão. Você pode rolar para baixo e clicar aqui
que criamos anteriormente. Clique neste botão. Acessamos o menu principal e mostramos o Create sera. Deveria funcionar. Agora, se eu abrir
o create sera, só
precisamos adicionar
algo
aqui para que possamos realmente
ver se está funcionando Se eu apenas pesquisar
uma imagem e arrastá-la para dentro, vamos mudar a tonalidade para algo melhor para os olhos
, para não ficarmos cegos Componha isso. Agora, se eu clicar em
Jogar e experimentar. Agora clique em Criar Sera. Eu recebo esse widget e
ele está realmente funcionando. Nós entramos aqui. Agora vamos clicar nele aqui. Vamos deletar a imagem. Por enquanto, compile,
salve tudo. Vamos passar para a próxima lição, na qual criamos esse widget
23. 3.02 Como criar o widget de servidor de criação: Tudo bem, bem-vindo de volta aqui. Nesta lição, vamos projetar o widget de criação de servidor Agora, este será
longo, talvez apenas mantenha o foco,
mantenha o interesse. Espero que às vezes eu
possa ser muito assustador. Vamos seguir em frente e fazer isso. O que eu quero projetar só mostrar
o que vamos
fazer , porque é sempre bom ver o que
vamos fazer. É essa interface de usuário aqui,
Create server. Temos o
nome do servidor, temos o mapa, quantidade de slots para o servidor, o idioma do servidor. Por exemplo, se for
inglês, alemão e assim por diante. A privacidade, se for um servidor
público ou terrestre. E então temos o
botão Criar e o botão Voltar. Isso é o que estamos tentando fazer. sempre bom ver isso porque antes de começar a
fazer o design, sempre visualize o que
você está tentando fazer E é muito mais fácil
usar caixas horizontais, caixas verticais e assim por diante. Vamos dar
uma olhada no tamanho
da tela. Só quero ter
certeza de que estou projetando para laptops genéricos. Vamos compilar agora a primeira
coisa. Novamente, para a interface do usuário, precisamos lembrar de adicionar um painel de tela antes de
fazer qualquer coisa Como tenho um histórico e algumas coisas além
disso, quero começar. Vamos começar com uma caixa
vertical primeiro, porque isso é
basicamente o que é. Vamos começar primeiro
com uma sobreposição. Uma sobreposição é basicamente algo sobreposto um
ao outro Primeiro, quero uma imagem
de fundo. Vamos arrastar
isso para a sobreposição. Agora você pode ver que a
imagem está somente aqui. Então eu clico na sobreposição e
preencho essa sobreposição aqui. Também para a imagem, eu a
preencho horizontal e verticalmente Assim para a
imagem. Vamos ver aqui. Vamos para a interface do usuário e para
as imagens que importamos. Acho que vou
usar esse painel aqui. Eu posso simplesmente arrastar esse painel azul até aqui, como antes. Vou transformar isso em uma caixa e mudar
isso para uma margem de 0,5 para que não fique
embaçado assim Já parece muito melhor. Não vou me
preocupar com o tamanho disso por enquanto,
isso realmente não importa. Mas o que vou fazer é
ancorá-lo no meio. Clicando na caixa vertical, fixe-a no meio
com o alinhamento de 0,50 0,5 Portanto, ela
fica no Além disso, lembre-se da posição
00 no x e y, então fica perfeitamente
no meio assim. Vamos continuar aqui. Agora temos essa sobreposição. Dentro da sobreposição, lembre-se de que temos todos
esses elementos aqui Todos esses elementos
estão alinhados verticalmente. Vamos adicionar uma caixa vertical dentro
dessa sobreposição Agora, nesta sobreposição, na sobreposição,
temos uma caixa vertical Como você pode ver aqui,
é muito pequeno. O que eu quero fazer para não
torná-lo pequeno é, novamente, alinhá-lo horizontal e verticalmente Isso preenche a coisa toda. Eu só quero
afastá-lo das bordas. O que vou fazer é dar um
pouco de preenchimento, porque agora,
quando adicionamos algum texto,
por exemplo, você pode ver se eu adiciono texto à caixa vertical, ele é adicionado aqui à borda E eu não quero isso
clicando na caixa vertical, vou aqui à esquerda. Talvez dê algo como
50, algo assim. No topo, vou
dar 35 pixels. 50 unidades até aqui e 35 abaixo também.
Algo parecido com isso. Está aqui no meio
quando eu adiciono elementos a ele. Agora, para este texto,
vou clicar nele e vou alinhá-lo
no meio horizontalmente Além disso, aqui embaixo, para
justificar, vou
colocá-la no meio Agora, para este,
vou apenas dizer crie o Servo. Na verdade, vamos
copiar do menu principal, porque não precisamos
criar tudo do zero. Na verdade, vou copiar isso do menu principal, Controle C, e depois controlar V em cima
dessa caixa vertical. Vou deletar
esse aqui. O que eu vou fazer é torná-lo 22 no tamanho para
que seja muito maior, parecido com isso, porque é um título. Quanto à sombra,
acho que está tudo bem. Tudo está indo bem. Agora, vamos
em frente e continuemos. Agora precisamos de um texto e uma caixa de entrada para que possamos
escrever o Seroname novamente Vou clicar aqui e copiar isso e colar em cima
da caixa vertical. Vou clicar neste
texto. Para o tamanho deste, vou torná-lo 18. Eu vou fazer a sombra
do primeiro set em vez de dois. Vamos adicionar um espaço, então temos um
espaço entre esses dois. Procure um espaçador,
arraste-o e edite entre
esses dois textos Para o espaço em
y. Vou
escrever 25, então temos
algum espaço aqui. Agora, clicando neste texto, quero que você o alinhe
à esquerda. Novamente, a justificativa.
Certifique-se de que seja deixado. Esse, verifique
se está no meio. Agora vamos adicionar uma caixa de entrada. Se você pesquisar por texto, verá essa
chamada caixa de texto. Vamos adicioná-lo
à caixa vertical.
Está aqui embaixo. Agora, para este,
vou clicar nele. Vamos continuar e projetá-lo. Imagem de fundo normal. Vamos agora descer até aqui na interface
do usuário e ver o que
podemos usar para isso. Se eu for às imagens, acho que vou usar
essa barra de entrada azul nas imagens. Para este. Indo para criar
sera aqui, vou clicar e arrastar
até aqui para ver a margem, para a caixa, vou
dizer 0,5, como antes Vou copiar
essa imagem de fundo. Mantenha pressionada a tecla Shift com o botão direito
e, em seguida, segure a tecla Shift e
clique com o botão esquerdo em ambas aqui. Vamos em frente e
mudar os dez está bem. Na verdade, vamos mudar esse. Se você quiser que o foco seja
de outra cor, você sempre pode fazer
isso com uma barra de entrada pairando Você pode fazer esse focado
que eu criei. Sempre que você passa
o mouse sobre ele,
ele deve fazer alguma coisa Se eu clicar em Plate
Create, testá-lo, você pode ver que ele
muda de cor, então você tem algum efeito. Quando você clica
nele, ele fica focado. Parece assim, certo? Já está bem.
Agora, vamos dar
um pouco de preenchimento porque é muito pequeno. Além disso, vamos colocar um texto aqui para
que possamos ver como fica
com o texto. Por exemplo, posso
dizer meu servidor, agora é assim que parece. Obviamente, não
parece muito bom. Temos que mudar isso. Vamos
realmente mudar o texto. Antes de estilizarmos isso, vou para a
frente para comprar este Vou usar a
média rubiana para o tamanho do texto. Acho que 16 deve ser adequado
para a cor do texto. Vou remover
essa herança e
torná-la branca aqui, assim Acho que não precisamos
fazer mais nada. Vamos mudar o
acolchoamento aqui em cima. Agora, para o preenchimento, novamente, é esquerdo, direito, de cima para baixo. Agora, de cima para baixo, acho que vou adicionar 20 por 20 assim para
a esquerda e para a direita. Vou adicionar um pouco menos, talvez 16 por 16. Parece que algo
assim aqui sempre
pode torná-lo menor, registre o que você quiser. Mas acho que isso já
está bom. Vamos fazer um teste no jogo
e ver como fica. Se eu clicar aqui, posso
escrever Looking Good. E se eu escrever um texto longo, é
assim que parece. Já está ótimo. Vamos dar um pouco de
espaço daqui de cima. O acolchoamento já tem quatro,
na verdade, na parte inferior. Digamos que cinco. Eu
só quero dar mais
um preenchimento para que tenhamos
algum espaço entre esses dois Agora estamos prontos para fazer o
próximo, que é o mapa. Vamos continuar e
copiar esse texto aqui. Controle C, Controle V
na caixa vertical. Vou chamar isso de um mapa. Vamos adicionar um espaçador mais uma
vez entre esses dois. Vou controlar D para
duplicar esse espaçador. Arraste-o para baixo sobre este texto. Temos algum espaço aqui em cima. Eu só vou fazer com que seja menos. Em vez disso, vou fazer 20. Agora vem a parte mais difícil, porque agora vamos
usar uma caixa de combinação, que é um menu suspenso Mas é um pouco mais difícil
estilizar esse. Vamos fazer isso, mas vai
ser um pouco
mais difícil do que os botões e a entrada. Agora, para este,
temos que fornecer algumas opções padrão
para os mapas. Você pode fazer o que
quiser. Vou apenas adicionar alguns
mapas de contra-ataque. Nós temos dois. Temos um mapa chamado Inferno, temos um mapa chamado Mirage e temos um mapa chamado
Office. Eu tenho esses dois. E então você tem que dar a
ele uma opção selecionada. Padrão, selecionado.
Vamos fazer o Inferno. Esse é o selecionado. Agora você precisa clicar em Compilar antes que ele mostre qualquer coisa Lembre-se de pressionar e
compilar o preenchimento. Ainda não sei porque,
na verdade, vamos usar
esse estilo e
estilizá-lo primeiro, antes de fazermos um pouco de preenchimento no combinação de estilo,
botão Vamos começar com
esse. Você pode ver que
há muitas
opções para fazer aqui. É um pouco mais complexo. Vamos começar com o
normal aqui. Vamos até Buttons. E eu vou usar esse
chamado Button Square blue. É sempre bom usar um quadrado para eles, porque há um
fundo que você não pode remover. Se for arredondado, como um
fundo pequeno aparecesse, se um
fundo pequeno aparecesse, será muito mais fácil
usar um quadrado. Vamos seguir em frente e fazer isso. Vamos arrastar isso até aqui. Vamos fazer isso aqui
no sorteio, pois vou
defini-la como uma caixa, como
antes , com a margem
de 0,5. A tonalidade será branca. Usamos nosso próprio botão normal, procure agora o preenchimento. Vamos dar um pouco de
preenchimento aqui no preenchimento do conteúdo, acho que vou fazer isso
para a esquerda e para a direita, talvez eu
dê seis por seis Vamos compilar e
ver
como fica para cima e para baixo. Vamos tentar 16 por 16 e
ver como fica. Isso
é o que parece. Agora eu tenho que colocar um pouco mais na parte inferior,
porque fica
assim , empurrando-a
mais para baixo Vou remover um pouco
da parte superior também, em vez de 16, talvez. Vou escrever 12 aqui. Pilha. Eu acho que isso
está parecendo bom. Agora, o que podemos fazer aqui é estilizar o texto para que
possamos ver como ele se parece Antes de fazermos isso, vamos
realmente copiar isso. Vamos copiar esse
normal para o mouse. Em pressionado. Vamos clicar aqui. Agora, para a Imperatriz Hoverd, verdade não
temos Na verdade, vamos usar o mesmo para
todos eles aqui. Agora, para se divertir,
vamos mudar o fundo. Antes de fazermos qualquer coisa,
o fundo está aqui. Vamos mudar essa. Eu vou mudar
isso como antes. Para médio rubiano. O tamanho é 16 e a
cor é branca. Assim. Talvez precisemos de um pouco mais de
acolchoamento porque está muito perto. Mas primeiro, vamos mudar
essa seta. Se eu descer e encontrar a seta, esse é o preenchimento do menu, você pode ver que é um
pouco mais confuso Para alterar essa imagem de seta
para baixo, vá em frente e clique aqui.
Vamos mudar isso agora. Eu já tenho um
nas imagens. Temos uma seta aqui, então você pode clicar
e
arrastá-la
para dentro, ela se ajusta à cor dessa seta. Vou clicar
no tamanho da imagem e aumentá-la um pouco. Vou fazer 14
por 14 e compilar. Também vou dar
um pouco de atenção aqui
porque está muito próximo à esquerda e à direita Vou dar 12 por
12 para cima e para baixo. Vamos dar a você algo de quatro
por quatro. Vamos compilar. É assim
que parece, muito
melhor do que antes. Agora, o que precisamos fazer é
alterar o menu em si, porque você pode ver cinco cliques em
play e clicar nesse menu. Temos um fundo escuro
e o texto também está errado. Também está escuro. mudar
isso. Clique nele. Agora, para o texto escuro, vamos voltar e
descobrir onde ele está. Está dentro do estilo talvez do
item, do estilo do item. Se você entrar no
que temos aqui, vamos aumentá-lo para que eu possa
realmente ver o que diz. Temos o pincel de fundo par e o
pincel da linha principal
e o pincel de fundo da linha ímpar Vamos
clicar neles. O oddro, por exemplo, eu quero que você altere o
sorteio como uma caixa em vez 0,5 na margem O tom aqui, em vez
de ser branco, você pode ver quando eu fiz isso Agora, se eu clicar em Play, o
fundo ficará branco. Para este, para o estranho. Em vez de usar branco,
vamos clicar nele. Clique no
seletor de cores e selecione o plano de fundo para
a borda em si, colorindo-a
com a mesma cor Se eu clicar em jogar agora, você
pode vê-lo na parte inferior. Ele vai usar a mesma cor aqui, que é o que queremos. Não se preocupe com
a aparência até agora, vamos mudar isso agora. Eu só quero copiar essa configuração e colá-la até
mesmo no pincel de linha e no pincel linha de fundo
principal como este. Vamos clicar em Jogar. Veja o que parece agora. Parece muito
melhor do que antes. Agora vamos adicionar ou
alterar a cor do texto para branco para a cor selecionada. Também vou mudar de
branco porque
veremos o selecionado por meio
deles aqui. Você pode ver que
o selecionado é azul assim. Eu quero mudar isso
para essa cor aqui. Acho que se encaixa muito melhor para o pincel ativo
pairado. Vou selecionar
a cor aqui embaixo. Na verdade, eu
vou, na verdade, não, não essa cor
porque é a cor aqui. O que eu quero fazer é
clicar aqui, escolher o seletor de cores E escolha essa cor aqui embaixo. É a cor escura, a mesma
do pincel ativo. Vou copiar essa tonalidade
e colar aqui embaixo. Eu clico em Jogar. Isso é o que parece,
parece muito melhor. Vou remover essa linha
laranja que está subindo aqui. Para esta linha,
vou usar
a mesma cor que
aqui embaixo. Ok, bom. Agora parece um pouco melhor,
mas, como você pode ver, na verdade não
parece muito bom. Como se o quadrado
parecesse muito estranho. Vamos em frente e consertemos isso. A maneira como consertamos isso, se subirmos até aqui e tivermos algo
chamado pincel de menudo Se você clicar neste, eu sei que este vídeo está
ficando muito longo. Mas eu só quero fazer
isso da maneira correta aqui. No pincel Met, preciso que você o mude. Vamos voltar aos
botões e alterá-lo para o
que usamos antes. Vá em frente e arraste-o agora. A margem para este, eu vou dar 0,5 E também para o
cabeçalho do menu aqui para a esquerda, eu vou dar 12, depois 28 para o topo. Agora, eu o testei antes e acho que ficou bom. 12 para a esquerda e para a
direita e 28. 32 aqui. Eu posso simplesmente compilar e você
pode ver como é. Se eu clicar em jogar agora, você
pode ver como é. Agora, nós o acariciamos assim, agora estamos vendo isso aqui Agora, para a cor do foco, acho que vou mudar a
cor da hova, como posso ver aqui, porque não
quero que fique Parece muito
melhor do que antes. Vamos
fixar a cor do foco. Se eu for até aqui, vamos
realmente usar a cor Daca. Acho que vai ficar melhor. Vou
copiá-lo daqui de cima. Foi aqui que o usamos
aqui para obter a margem. Na verdade, vamos
copiar a cor por enquanto. Eu realmente não preciso de
mais nada para o hovert. Vou colar
aqui. Esse também. Vou mudar para a
caixa 0.5 colando a tonalidade e também para a linha uniforme Vou colar aqui,
compilar, clicar em reproduzir Agora, isso é o que parece. Acho que parece muito melhor. Agora, aqui no cabeçalho da linha do
menu, vou colocá-la
aqui à esquerda, 12,12 à direita, quatro para cima e para baixo E eu vou compilar
e clicar em Play. O que isso faz
é dar algum espaço entre
esses elementos. Agora, no preenchimento da linha do menu, damos algum espaço
aos elementos Então você pode ver que eles estão um pouco mais distantes um do outro. Acho que terminamos. Mas antes de fazermos isso,
quero dar um pouco mais de espaço
a este texto aqui. Em vez de 612 aqui, vou dar talvez
mais quatro na parte inferior, mais quatro na parte superior Vamos lá, compilar
e ver como fica. Assim, na verdade,
um B mais quatro novamente e
mais quatro novamente são compilados para a esquerda e
para a direita Vou dar um pouco mais. Vamos tentar mais quatro
mais quatro aqui. Parece que compile. Acho que parece um pouco melhor. Vamos dar um pouco mais. Vamos dar 12 por 12. Compile, ok? Acho que isso parece muito melhor. Vamos continuar e
trabalhar com este. Vamos clicar em Jogar e
garantir que não tenhamos nenhuma caixa com
essa caixa ao lado de outra. Tudo está indo bem agora. Ok, isso é o que
vamos usar agora. Precisamos de um para os mapas, isso é muito mais fácil
porque agora vamos
copiar e colar como antes. Lembre-se de que os temos
em uma caixa horizontal. Vamos prosseguir e
procurar por horizontal. Vá em frente e cole
na caixa vertical. Agora, em vez dessa horizontal, vou arrastar para dentro, temos que arrastar essas duas. Mas antes que possamos fazer isso, vamos embrulhá-los
em uma caixa vertical. Não estragamos o alinhamento
vertical deles aqui. Vamos continuar e
clicar aqui. Arraste-o para a caixa vertical. Para essa caixa vertical, vou clicar em Controle
D. Nós a duplicamos, já que queríamos
preencher toda a área, vamos clicar na primeira Na verdade, vamos
clicar na caixa horizontal. Certifique-se de que seja assim. Para a
caixa vertical, clique em preencher. Para a caixa vertical dois, clique também em preencher. Vamos duplicar esse espaçador
e colá-lo entre eles. Deixe-me escrever um no Y, mas no X temos que
dar um pouco de espaço. Agora, para o X, vou dar
a ele um espaço de 25. Vamos mudar esse texto para slots. Quantidade de slots para
o servidor aqui. Vamos dar algumas opções
padrão. Digamos que dois jogadores, quatro jogadores, oito jogadores. Talvez 16 jogadores. Vamos
dar mais uma vez. Digamos que 32 jogadores. Agora, a
opção padrão selecionada seria talvez quatro
jogadores e compilar E você vai ver isso aqui. Vamos continuar agora e
duplicar essa caixa horizontal, clicando no controle D
para duplicá-la novamente, vou adicionar
um espaçador entre
elas, duplicando esse espaçador elas, duplicando Adicionando-o aqui embaixo. Para o próximo aqui, vamos dizer linguagem. Para o último,
vamos dizer privacidade. Agora, para o idioma, basta escolher o que quiser. Por exemplo, o inglês
seria o principal. Além disso, para a opção selecionada, vou dizer inglês. Essa é a opção padrão. O segundo poderia ser alemão, o terceiro poderia ser chinês. O último pode ser
algo como o francês. Você sempre pode fornecer
quantos idiomas quiser, mas tudo bem por enquanto. Para a privacidade, eu
só quero duas opções. Quero um servidor público ou, se for um servidor terrestre, vá
em frente e compile E, claro, temos que selecionar uma opção padrão
que seja pública. Vou remover essas
opções que não precisamos. Vá em frente e compile. Aqui está ótimo.
Vamos clicar em Jogar. Apenas testando para ver se tudo está como
deveria. Tudo está indo bem. Agora, para a última
parte, os botões, vamos
duplicá-la no menu principal Vou duplicar
um deles. Por exemplo, este duplique o controle de sobreposição C e
vá para o servidor Create E novamente, no controle da caixa
vertical V, vou controlar
V mais uma vez, porque precisamos de dois botões. E clicando
na caixa vertical, vamos aumentá-la para que
possamos ver o que estamos fazendo. Clicar na
caixa vertical, a primeira, parece um pouco estranho,
como você pode ver aqui Agora, para o preenchimento, vou dizer
zero, a sobreposição E o segundo preenchimento de sobreposição, eu vou dizer zero Você pode ver que eles estão um
em cima do outro. Isso ocorre porque eu
realmente colei a segunda sobreposição dentro
da primeira Vou arrastá-lo para
a caixa vertical, e agora eles estão um em
cima do outro. A razão pela qual esse
botão está pressionando esse outro botão é porque o primeiro é um preenchimento, a segunda sobreposição não
é um preenchimento Vamos continuar e
clicar em Preencher. Então, eles preenchem o máximo de
espaço da mesma forma. Agora vamos também adicionar um
espaçador entre eles. Mas antes de fazermos isso, vamos adicionar um espaçador aqui,
duplicando esse Além dessas
duas sobreposições, temos algum espaço aqui
para essas duas Vou apenas
selecionar os dois aqui em
cima para o preenchimento
na parte superior e inferior. Na verdade, vamos dar
um seis aqui e compilar. Vamos mudar o texto
para o primeiro, vamos dizer Create Serva Para o segundo,
vamos responder porque
precisamos de um botão para voltar
ao menu principal. Para este, vou mudar a cor
para T quadrado azul-petróleo novamente Você sempre pode copiar isso. Cole aqui e aqui. E então você pode alterar
o primeiro para
acumular e o segundo
para protensão. Agora, o segundo na parte de trás, vou mudar isso
para um quadrado cinza, cinza, copiar e colar em
todos eles assim. Preciso copiar este
para o normal, não
sei por que não
atualizei. Vamos compilar isso. Vamos mudar o segundo para a forma como isso é pressionado
e este, Howard OK. Novamente, altere as
cores aqui também, a cor do contorno. Clique nele. Cólica. Vou selecionar a cor de
contorno mais escura Clique nele. Novamente,
copie Colado na cor da sombra De volta aqui, clique nele. Clique em Selecionar cor, escolha
a cor mais escura da papoula, a cor, e cole-a
na sombra também Agora está com boa aparência. Agora você pode tentar redimensionar a caixa
vertical conforme desejar. Como você pode ver quando
redimensiona a caixa vertical, você também redimensiona os botões Basta redimensioná-lo para o que, quando achar que os
botões estão bem E eu penso
assim, então você também pode redimensioná-lo nessa
direção, o que você achar que
está bom Eu só vou com
algo assim. Aqui também fornecemos alguns desses
menus suspensos. Ok, o que você pode
fazer é clicar
na caixa vertical e centralizá-la, posicionando y0x e Y zero. Você pode ir em frente e
clicar em Compilar. Agora, clicando
no primeiro botão, certifique-se de ter alguns sons pressionados em
Sound Overt Sound e no outro também Lembre-se
de que, para esses dois textos, certifique-se de que a visibilidade não
seja testável, para que não bloqueie
os cliques do mouse Acredito que não
esquecemos nada. Vamos salvar tudo isso. Clique em jogar. Vamos
testá-lo. Agora estou aqui. Eu posso escrever meu nome de usuário. Eu posso clicar neles aqui, qualquer coisa. Servidor traseiro aqui. Vejo que a prensa traseira não
está funcionando. Só para corrigir isso, clique aqui. E eu posso ver que está lá. Mas talvez algo tenha dado
errado ao mudar para cá. Talvez algo esteja errado
com o botão em si. Como a arte em si, acho que algo está errado
com a arte em si e não com essa de que
fizemos tudo certo. Ok, vamos salvar tudo agora. Vamos continuar com
a próxima lição, onde começaremos a programar
esse ótimo widget de servidor
24. 3.03 Como obter o nome do servidor e o mapa selecionado: Agora, para esse menu
que criamos, vamos
começar a codificá-lo Em primeiro lugar,
quero obter o nome do servidor que
criamos aqui. Vamos primeiro clicar
nessa caixa de entrada. Temos que dar um texto aqui, porque no gráfico não
podemos realmente usá-lo. Não o adicionamos como
uma variável aqui, configurá-lo como é variável.
Basta dar um nome a ele aqui. Vou chamá-lo de
entrada para uma caixa de entrada, vou chamá-lo de nome
do servidor e compilar Agora, dentro do
gráfico, você pode vê-lo. Vou deletar
todos eles aqui, clicando na caixa de entrada. E então você pode
clicar aqui para alterar um evento no texto. Agora, isso é
o que o jogador está
inserindo aqui Vou
pegar isso e dizer para String. Vá em frente
e selecione-o. Agora, se você não sabe o que é
uma string e o que é um texto, essas são basicamente variáveis de
texto. Se eu clicar em mais, na variável aqui e
selecione o tipo de string, e eu crio uma nova e
seleciono o tipo de texto. Você pode ver aqui se
eu compilo uma string, é apenas um texto aqui A variável de texto também
é uma frase. Aqui eu posso escrever
os dois é um texto. Qual é realmente a diferença? A diferença é que um texto pode ser traduzido para
outros idiomas. Por exemplo, se você quiser
traduzir seu jogo para alemão ou qualquer
idioma que você quiser, japonês, russo,
o que quiser, você precisa usar uma variável de texto. Se você usar uma string, não
poderá traduzir seu jogo. No entanto, uma string
usa menos memória. É sempre melhor
usar uma string se o texto que você está escrevendo
não for traduzido, apenas uma descrição aqui. Mas se você quiser saber
muito mais sobre isso, vá novamente para Game instruct.com. Tenho muitos cursos sobre isso que você pode dar
uma olhada neste Primeiro, vamos arrastar a partir daqui ou clicar com o botão direito do mouse e
promover isso para uma variável. Vou
chamá-lo de nome do servidor. O que quer que o player
esteja escrevendo aqui, vou conectá-lo
a essa variável. Nós armazenamos essas informações. A razão pela qual eu a
transformei em uma string primeiro, e não apenas clique com o botão direito
aqui e a transformei em uma variável, é porque uma string você pode
modificá-la muito mais. Você arrasta a partir daqui
e a corda direita, você pode ver que pode
dividir o texto. Você pode verificar se
começa com alguma coisa. Você pode simplesmente fazer muita coisa com isso. Você pode cortá-lo, torná-lo em
maiúsculas e minúsculas. No futuro, verificaremos se o jogador está escrevendo palavras quadradas
no nome do servidor. E sempre podemos
dizer ao jogador que você não pode criar
um servidor se
tiver escrito essa palavra
no nome do seu servidor. Nós evitamos que
os jogadores escrevam a palavra, por exemplo, ou qualquer coisa ruim. E podemos realmente fazer isso usando uma string
e podemos verificá-la. Além disso, podemos verificar
se o player
realmente escreveu alguma coisa
e se ela não está vazia. Porque se estiver vazio, eles não
deveriam ser capazes de
criar o Serva, estamos fazendo verificações
com este Agora vamos continuar. O próximo passo é que vamos
verificar o mapa aqui, o que quer que eles tenham
escolhido clicando nele. Vou chamá-lo de
CB para caixa de combinação. Vamos chamar isso de
um mapa ou mapa do jogo. O que quer que você queira
chamá-lo é variável. Vamos pegar isso aqui.
Não tire isso. Na verdade, clique nele e
clique em Alteração de seleção. Agora, para essa variável, esse é o item selecionado
que eles selecionaram. Novamente, eles podem selecionar todos esses itens que
você listou aqui. Agora, o que eu quero fazer, só
para melhorar um pouco, eu quero ter os mapas do jogo
dentro de uma enumeração Novamente, lembre-se de que
uma enumeração está onde quer que você tenha feito este
texto ou esta lista aqui Então, vamos fazer
uma nova lista. Vamos voltar às plantas. Vamos abrir a pasta enos. Lembre-se de que fizemos uma lista de widgets do menu
principal. Novamente, uma enumeração
é apenas uma lista. Vamos ver as plantas,
fazer uma enumeração. Vamos chamar isso de mapas de jogo. Vou apenas listar todos os mapas
do jogo que podemos jogar. Clicando aqui
algumas vezes. primeiro foi apenas dois, o segundo foi Inferno, o terceiro foi Mirage e o último é Office Ok, saia e salve
essa enumeração. Agora, o que podemos fazer
aqui é arrastar a partir daqui e dizer ativar a string. Ativar a string é que
podemos basicamente dizer qual código reproduzir se você simplesmente clicar em
mais, vamos fazer isso. Então você pode ver se
eu adicionar alguns pinos aqui, por exemplo, três deles. Eu clico aqui para ver
o primeiro, novamente, vou escrever os nomes dos
mapas aqui, Dois, Inferno e Mirage, se eu
puder escrevê-lo corretamente O último é o escritório. Nós temos esses mapas agora. Dependendo do switch, assim como eu disse antes
aqui, na verdade
fizemos isso
dentro do show hide. Se eu voltar, fizemos isso
aqui, ative a enumeração. Desta vez, estamos
ligando uma corda. Se o jogador tiver
selecionado dois e você tiver que escrevê-los exatamente como
os escreveu aqui, para que ele possa reconhecê-los. Se o jogador
selecionar, por exemplo, o Inferno simplesmente
reproduzirá esse código aqui O que vamos
fazer é
definir a seleção de enumeração Agora, para configurar o mapa, é melhor fazer isso dentro
da instância do jogo e
não aqui, porque precisamos
usá-lo para criar o servidor. Vamos voltar aqui. Vamos trabalhar
com a instância do jogo e dar uma olhada no que ela é aqui. Vamos clicar com o botão direito do mouse
na pasta do blueprint. Vá para a aula de plantas. Na verdade, não há algo
chamado instância de jogo aqui. Você precisa clicar
em todas as classes e pesquisar a instância do jogo. Agora, o que é uma instância de jogo, é uma instância que é executada
no jogo o tempo todo. Se você entrar na série, se você desligar a Serva, se estiver no menu principal
ou se estiver no jogo,
ela estará sempre em execução Ele nunca desliga
ou exclui nada. Sempre que você tiver
seu jogo em execução, ele será executado o tempo todo e você só poderá ter uma
instância de jogo no jogo. O que estamos fazendo aqui é que,
na instância do jogo, você geralmente faz o código
para criar um Serva Ao fazer isso, você garante que não exclua todas as
informações sempre que criar
o lobby mudar de lobby ou sair
do lobby e assim por diante. Portanto, garantimos que
as informações feitas corretamente, sem
interrupção, porque, novamente, a instância do jogo nunca
será encerrada. Vamos continuar e criar um. Vamos clicar
aqui, selecionar,
chamar de GI, por exemplo, vou chamá-lo do nome
do jogo que
é Counter Strike. Basicamente, temos apenas
uma instância do jogo. O jogo inteiro que criamos não o
abriu aqui. O que eu quero fazer é
simplesmente criar uma variável por enquanto. Vou chamá-lo de mapa de jogo
selecionado. Vou usá-lo mais tarde meu mapa, então não
se preocupe com isso. Mas para o tipo de variável, quero selecionar os mapas do jogo, a enumeração que criamos, vá em frente e compile agora o que podemos fazer no servidor de
criação aqui, vamos apenas obter uma referência ao modo de jogo ou instância
do jogo, porque precisamos Lembre-se de que, assim como antes, precisamos criar uma interface de
plano para obter a referência novamente Para a interface de plano, você pode tentar fazer isso
sozinho para praticar Se você não se lembra,
vamos fazer isso bem rápido. Aqui, clique com o botão direito do mouse, crie uma
planta, interface de planta. Vamos chamá-la de
instância de jogo porque é a
isso que estamos
tentando nos referir. Vamos chamar essa função get
game instance reference. Vamos adicionar
uma entrada ou uma saída aqui e pesquisar o que estamos tentando nos
referir. Estou tentando fazer referência
à minha instância de jogo. Vamos chamá-lo de
instância de jogo e compilar. Agora vamos voltar às últimas configurações da instância do
jogo. Vamos adicionar
essa interface que acabamos criar, chamada Game
Instance compile E agora você vê a
função que você acabou de criar. Assim como antes. Temos que
definir essa variável. Como estamos na instância
do jogo, vou escrever self como uma
referência para que ele saiba que essa variável é essa
instância do jogo e compile Agora vamos voltar ao Create
Serva. Agora podemos usá-lo. Vamos criar essa
variável no evento start, play. Vamos clicar com
o botão direito aqui. Como estamos na interface do usuário, isso não se chama start play, é chamado de construção de evento. Vamos clicar
nele. Agora eu tenho que dizer Get Game instance, e é esta em
Game instance. Agora temos a instância de jogo
padrão, mas preciso dizer que
precisamos usar nossa
própria instância de jogo. Agora podemos usar esse. Obtenha a referência da instância do jogo
que acabamos de criar aqui. Bastante conectado. Agora, vamos clicar com
o botão direito do mouse para promover
essa variável S. E vou chamar
essa variável de instância de jogo. Mas agora temos a variável de instância do
jogo. O que podemos fazer aqui embaixo pegar essa instância do jogo
e dirigir daqui. E agora podemos escolher essa
variável selecionada do mapa do jogo que criamos. Na verdade, eu não quero
entender. Eu quero configurá-lo. Eu quero direcionar a partir
daqui e dizer definir mapa do jogo
selecionado aqui. Agora, quando é poeira dois, estamos configurando para poeira dois. Vou copiar isso
algumas vezes aqui
para poder usá-lo. Você pode conectar isso a esses. Eles têm alvos
para o Inferno. Vamos
mudá-lo para Inferno, o Mirage, vamos
transformá-lo em Mirage, e para o Office,
vamos transformá-lo em
Office à frente e
arrastá-los Agora, dependendo da opção que eles selecionarem
no menu suspenso, a
variável que vem da instância
do jogo será definida instância
do jogo duas: Inferno,
Mirage in Office E então podemos usá-lo mais tarde, quando hospedarmos ou criarmos o jogo. Temos essa informação aqui
dentro. Vamos em frente e
salve tudo. Vamos passar para a próxima.
25. 3.04 Como obter os caça-níqueis, a linguagem e a privacidade: Vamos agora prosseguir e continuar. Vamos voltar ao ótimo widgit de
servidor aqui. Vou ver
o gráfico mais uma vez. Agora, o que queremos fazer é
obter a quantidade de slots. Vamos voltar ao gráfico. E aqui a quantidade de slots
é basicamente essa. Eles nos permitirão renomeá-la
e chamá-la de caixa de combinação B, assim como fizemos com
as outras Para este, vou
chamá-lo de quantidade de slots. Também renomeie os outros
agora que estamos editando. A próxima é a linguagem B
ou a linguagem Servo, você também pode chamá-la
para que saibamos o que é A última é a privacidade da CB. Agora temos todos eles
selecionando todos eles,
transformando-os em variáveis, para que
possamos vê-los agora dentro do gráfico.
Vamos continuar. Vamos clicar primeiro
na quantidade de slots. Novamente, clique neste evento. Agora, para o item selecionado, vou
convertê-lo em um número inteiro, que é um valor numérico Texto em valor numérico. Agora, com esse número inteiro,
vou escrever Click Promoted em uma variável e
chamá-la de quantidade de slots Então vá em frente e
conecte este. E, a propósito, antes que eu esqueça, deixe-me acessar o widget Reflita mais uma vez,
aumente a interface do usuário. É um pouco mais fácil
para você ver. Agora, promovemos essa variável
inteira para a variável
aqui, quantidade de slots E isso é simplesmente, está aqui. Vamos passar para
o idioma agora. Clicar no
idioma, Descer, clicar na seleção, mudou. Agora, a linguagem que
vou usar aqui, promova esta
para uma variável e chame-a de linguagem Serva Isso foi tudo para o idioma. Agora, o último é a privacidade. Clicando na privacidade,
novamente na seleção alterada. Agora, quanto à privacidade
, pode ser que
o jogador tenha dito que
é um servidor público
ou um servidor terrestre. Com isso, como temos
apenas duas opções, vou criar uma
variável de ouro chamada use line Como você vê normalmente
para barras de ouro, eu
adicionei na frente porque
quando você as arrasta para fora, você pode ver que
não consegue ver o B. você pode ver que
não consegue ver o B.
Isso é útil quando
você pesquisa Se você apenas escrever B, todos
os lingotes aparecerão. Agora, para esta linha de uso depende do que o
jogador selecionou. Vamos arrastar a partir desta e
dizer alternar a string aqui, e agora ativar a string. Agora lembre-se de que, para a
string, você pode escolher public ou len. Vou fazer o ouvido
clicar nele em dois pinos, um chamado público
e outro chamado Len Agora, para este, vamos
separar dois deles. Se for escolhido para ser público, este será falso porque não
queremos usar len. Se len for selecionado, definiremos essa
variável como verdadeira. Podemos usar esse mais tarde. Agora estamos tecnicamente concluídos. Mas o que podemos fazer agora, porque haverá um
dinheiro se não fizermos isso E como você pode ver aqui, se eu clicar em Play, e quando eu criar um Serva, e eu não selecionar
nada aqui, eles nunca serão definidos Se eu clicar em Jogar, eu crio o Serva. Eu simplesmente
clico em Criar Serva. Se eu fizer isso sem
alterar nenhum valor, lembre-se de que só
definimos essas variáveis quando elas são alteradas
na seleção alterada. Se o jogador
não mudar nada, todas essas variáveis
ficarão vazias. Então, vamos definir um valor padrão para
não estragar o jogo. A primeira coisa que eu quero fazer é voltar e dar uma
olhada agora no servônimo Mais tarde, vamos
torná-lo um pouco melhor. Por enquanto, pode estar vazio
, não importa. O próximo é o mapa. Vamos definir o valor padrão do mapa. Pegando este mapa do jogo aqui, diga obter a opção selecionada. Agora, a partir deste, quero definir o mapa do jogo exatamente como fizemos
aqui embaixo, se conseguirmos encontrá-lo. Este aqui, nós definimos o mapa do
jogo dependendo disso. Agora, em vez de
copiar tudo isso, você pode ver que se
copiarmos e colarmos tudo
isso, realmente não parece muito bom. O que podemos fazer é clicar no controle Z. O que podemos fazer se houver um
código que você precise copiar colar em outras partes do motor ou
do seu jogo, é melhor clicar com o botão
direito do mouse sobre eles e
reduzi-los a uma função Vamos chamar essa função Set Selected map aqui embaixo
no nome da variável. Podemos chamá-lo de
selecionado assim. Agora podemos usá-lo aqui em cima. Arraste a função que
criamos, vá lá e conecte-a. E conecte este. É muito mais fácil de usar se você clicar duas vezes
na função, basta fazer com que
pareça um pouco melhor Saia da função aqui,
volte para o gráfico principal. Eu acho que isso é muito melhor. A próxima coisa que precisamos
fazer é definir o padrão
para a quantidade de slots para essa variável que criamos aqui.
Vamos subir até aqui. Pegue a quantidade de slots,
obtenha a opção selecionada. Agora podemos pegar essa
quantidade de slots. Podemos configurá-lo e simplesmente
arrastá-lo até aqui. E ele converte automaticamente essa string em um
número inteiro para você Agora, isso também foi definido
por padrão. A próxima coisa que queremos definir é o idioma que temos aqui. Vamos novamente obter o idioma do
servidor, obter a opção selecionada. Vamos pegar essa linguagem de
servidor e configurá-la assim. Agora, a próxima coisa
que temos é a privacidade. Agora, para este, não precisamos
realmente configurá-lo aqui porque ele
será falso por padrão, o que significa que
será público por padrão. Na verdade, não precisamos
vir aqui e definir isso como aqui porque
já é falso por padrão, não
precisamos
fazer nada aqui. Quanto ao nome do servidor, ele também
está vazio por padrão. Deixe-me clicar aqui
e remover este Sera. Aqui está vazio
e compile novamente. O servidor está vazio por padrão. Nós realmente não
precisamos tê-lo aqui na construção do evento. Agora eu posso ver que cometi um erro, porque eles realmente
precisam estar aqui. Em vez disso, vou
copiá-los e colá-los aqui. E esse é o meu erro,
aqui embaixo é o correto. Porque eles precisam começar com a construção
do evento, que é basicamente o
início da interface do usuário. E, sem mais nem menos, agora
temos todos eles. Você pode tentar
juntá-los. Não é uma bagunça assim, tudo deve
estar bem agora Agora terminamos
com tudo aqui. Vamos compilar e
passar para a próxima lição.
26. 3.05 Programando o Button de volta: Vamos agora dar uma
olhada no botão Voltar. Vamos até o designer. Clique nele, desça e aqui, clique agora. Antes de fazer isso, deixe-me mudar o nome para que eu saiba
o que estou fazendo aqui. Este é o botão de retorno. Em seguida, clique
no evento de clique. Quando clicarmos nele,
assim como antes, vou minimizar isso. Vou até a interface do usuário, vou até o menu principal, abro o menu principal. E vou copiar
isso que fizemos antes. Vou colar aqui. Agora, o
controle do player ficará cinza porque não
definimos as linhas de
controle do player aqui. Na verdade, vamos fazer isso
aqui depois da instância do jogo. Vou
mover tudo
isso como está velho e clicar
aqui para desconectá-lo Vou clicar com o botão direito do mouse e configurar o controlador do player para selecioná-lo. E arraste e diga get player
controller reference. E é o da
interface
do menu principal que criamos. Vá e selecione aquele
Deus e conecte-o. Agora, clique com o botão direito do promova isso para uma variável
chamada controlador de jogador. Agora podemos conectar o
resto das coisas. Agora temos a variável do
controlador do player. E você pode ver agora que é normal porque agora o
definimos. Quando clicamos em Voltar, quero fechar o
Create Sera Don't Show Então eu quero mostrar o menu
principal assim. Clique em Play, agora Create Sera. Eu volto, você pode ver que agora
está funcionando bem. Agora temos uma caixa aqui. Eu posso ver que diz Access. Estou tentando ler a instância do jogo de
propriedades, se eu clicar aqui. Vamos
depurar isso juntos Agora temos esse problema.
Diz que não há acesso. Quando diz acesso nenhum, significa que não
obtém nenhuma informação. Do que ele não obtém
nenhuma informação? Da instância do jogo?
Deste. Diz que este está vazio, o que é estranho porque já o
definimos Isso está no servidor de criação. Se eu voltar à construção do
evento, você pode ver que a instância do jogo
já foi definida. Talvez eu tenha esquecido uma autorreferência. Se eu voltar para
a instância do jogo, se eu fechar tudo isso, eu volto para as plantas, a instância
do jogo Aqui eu dou uma
olhada nas interfaces. Mas já fizemos
a autorreferência. Agora, a última coisa, a era, pode ser daqui, é porque eu
esqueci de alterá-la na configuração
do projeto Se eu for para Editar, vá
para Configurações do Projeto, em vez de aqui, vá
para Mapas e Modos. Aqui está. Esqueci de alterá-lo na classe de instância do jogo A instância do jogo
que queremos usar é
nossa e não a
padrão do Unreal Engine Eu contra-ataque, então
eu posso tentar jogar agora e ver se eu recupero uma carreira na
era e assim por diante Eu posso fechá-lo agora e
não tenho nenhum erro. Tudo está funcionando bem. Vamos passar para
a próxima lição.
27. 3.06 Crie uma sessão avançada: Agora é hora de trabalhar com
as sessões Create Advanced. Agora, nesta lição, vamos para a instância do jogo. Aqui, queremos
criar a sessão. O que queremos usar é
clicar com o botão direito do mouse e pesquisar por
Criar sessão avançada. Esse do
plug-in do Steam, é esse. No
início, isso pode parecer confuso porque
há muitas coisas, mas na verdade é
muito fácil de usar Vamos tentar
usá-lo juntos aqui. Primeiro, quero clicar com o botão direito do mouse
e criar um novo evento personalizado. Para este evento personalizado, vou chamá-lo de Serva Esse é o objetivo
deste evento. Vamos continuar e
conectar este com ele. Agora, para o controle de jogo, vou arrastar e
dizer get controller. E vamos usar
esse apenas para as configurações extras. As configurações extras simplesmente
salvam algumas configurações para nós, que
podemos usar posteriormente sempre que
quisermos mostrar o Serva no navegador
servo Se eu arrastar daqui e disser que
você pode ver make array, o que significa que
você quebra coisas? Se eu, por exemplo, disser get
act transform, e eu simplesmente remover isso
e clicar aqui, você pode ver que posso
arrastar daqui e
posso dizer break transform. Eu posso dividi-lo em um
local, rotação e escala. Isso é o que é uma transformação. Além disso, você pode ver que, se eu clicar em algo no meu mundo e dar uma
olhada na transformação, ela consiste em uma localização,
rotação e escala. Eu posso me arrastar
daqui e dizer pausa. E eu posso
dividir isso na
transformação, nos três valores ou
vice-versa. Se eu for por aqui
e não por aqui. Se eu for por esse caminho, não
posso dizer pausa porque não
estou quebrando. Basicamente, eu estou fazendo uma matriz, é o que fizemos neste caso. Deixe-me clicar com o botão direito do mouse e tornar esse contexto
sensível novamente, para que eu só obtenha
funções relevantes quando pesquisar. Agora, quando criamos a matriz, podemos arrastar e criar novamente O que eu quero fazer aqui é uma string literal de
propriedade de sessão Porque eu quero
salvar o nome do servidor, que quer que o jogador escreva. Quero salvar isso
porque, mais tarde, precisarei
usá-lo para exibir o SERA
com o nome correto do servidor Para a chave, vou
dizer nome do servidor. Agora, para o nome real do servidor, é
aqui que o jogador digita. Eu não quero
definir um valor aqui, porque esse é o jogador
que define o valor. Vou apenas
arrastá-lo para o evento aqui, para que ele crie uma variável
automaticamente para mim. Vou
chamá-lo de nome do servidor. Tudo bem, então agora
terminamos este. A seguir, eu também quero economizar a quantidade de jogadores. Se você esquecer o que
precisa fazer, sempre
poderá voltar
ao menu UI Made abrir o servidor Create. Aqui, você
pode dar uma
olhada nos valores de que precisa. O próximo passo é, por exemplo, a quantidade de jogadores. Agora, na verdade, não precisamos de um
plug-in porque o mapa, lembre-se de que, no servidor de
criação, o que
fizemos foi acessar a função definir mapa
selecionado, simplesmente essa variável de enumeração do
mapa do jogo selecionada Sempre que o jogador
seleciona o mapa, na verdade
temos esse valor aqui no mapa do Em vez de fornecer
um plug-in aqui, o que podemos fazer é salvar essas informações para mais tarde,
quando criarmos esse servidor. Vamos nos gabar
dessa e dizer:
faça uma sequência literal novamente Vá em frente e escolha esse. Vamos arrastar isso até
aqui e ele converterá automaticamente sua
enumeração Vou chamar isso de mapa
de servidor assim. Agora também temos essa
informação. O próximo passo é a quantidade de
jogadores que podem se conectar. E eu vou
arrastar isso até aqui, e vou chamar isso de
quantidade de slots como este. O próximo passo é a linha usada. Vou arrastar
isso até aqui. Podemos simplesmente deixar que
seja chamado de terra de uso. Isso é bom. Vamos
ver o que esquecemos Se eu voltar para
o servidor Create, temos o mapa,
temos os slots. Estamos sentindo falta do
idioma no momento. Para o idioma. Eu quero salvar isso também. Se eu criar um alfinete, arrasto
daqui e transformo novamente uma string
literal. Eu chamo esse, deixe-me arrastar o
controle da placa até aqui em vez disso Para este, vou
chamá-lo de Serva Language. Para o idioma, novamente,
o jogador o escolhe. Vou apenas conectá-lo aqui e
arrastá-lo acima
da linha usada e chamá-lo de linguagem
Serva compilada Agora também estamos salvando o
idioma, a privacidade que temos porque
temos essa linha usada. Na verdade, não temos mais
informações se você quiser agora. Você pode simplesmente fazer com que as coisas
pareçam um pouco mais limpas clicando
nessas linhas aqui. Você pode clicar, por
exemplo, neste. Pressione que no teclado para
torná-lo reto e assim por diante. Então, eu vou
parecer um pouco melhor. Tudo bem com isso. Concluído. Agora, basicamente, terminamos toda essa parte aqui. As outras coisas estão bem, podemos permitir int, é claro. Você também pode, novamente, ter uma
opção para isso, se desejar. Você sempre pode adicionar opções extras se quiser permitir
convites ou não Você pode ter uma caixa de seleção se
quiser configurações extras. Você sempre pode conectá-los aqui e deixar o
player decidir também. Mas, por enquanto, quando
criamos o servidor aqui, o que queremos fazer é criar a sera Queremos nos juntar ao
mapa que eu arrasto daqui. E digamos que nível aberto
por referência de objeto. Agora você pode selecionar qual
nível você precisa abrir. Agora eu não tenho
tantos níveis, então vou usar meu
mapa principal como padrão. Lembre-se de que o jogador
selecionou os mapas do jogo, temos que selecionar em qual
mapa do jogo queremos gerar Vamos arrastar o
mapa do jogo selecionado, arrastar a partir daqui e dizer ativar o mapa do jogo aqui. Então você pode simplesmente
conectá-lo aqui. O que podemos fazer agora
é que, para os dois, podemos abrir o mapa dos
dois, o Inferno. Podemos subir o
mapa do Inferno e assim por diante. Agora, eu não tenho
tantos mapas no meu projeto. Vou apenas
copiar e colar desta vez e abrir
talvez o mesmo mapa. E posso simplesmente imprimir uma mensagem na tela e ver
se abri o mapa correto. Agora, quero mostrar
uma maneira de
otimizar esse código para que você
não precise fazer isso dessa maneira. Vou deletar
todos eles. E o que você pode fazer é usar um nó de seleção. Se você arrastar a partir daqui
e pesquisar por Selecionar, vá em frente e pegue o nó de seleção para
isso aqui no índice. Vá em frente e arraste sua
enumeração até aqui. Agora diz que, se eu apenas conectar tudo
isso aqui ao sucesso,
lembre-se de que você tem que
conectar o sucesso e não este. Porque queremos nos juntar ao Sera sempre que ele
criar os servidores com sucesso Agora, ele
selecionará o mapa, dependendo da opção selecionada aqui no mapa
do jogo selecionado. Se estiver definido como Inferno, ele selecionará
esse valor de Inferno e teremos que dizer qual
mapa para o Inferno. Vou apenas selecionar o
mapa principal para todos eles. Além disso, o que você pode
fazer se desejar é simplesmente selecionar mapas aleatórios. Eu posso simplesmente abrir
este mapa de demonstração
e abrir esse mapa de exibição de
armas Vamos realmente abrir esses mapas
aleatórios que eu tenho. Além disso, o nível de demonstração de
documentos militares ou qualquer outra coisa. Tudo isso. Agora vai funcionar. Agora você pode ver que o código
é muito mais limpo do que usar a opção de enumeração, que nos faz copiar e
colar esse Podemos simplesmente fazer isso com um
usando o nó de seleção. E eu vou
deletar tudo isso aqui em cima. E agora estamos
basicamente terminados. Isso foi tudo para a série Create. Agora temos todas as opções de que precisamos para criar o soro Vamos passar para a próxima lição e programar o botão Criar
servidores
28. 3.07 Programação do servidor de criação do Button: Agora estamos de volta aqui na interface
do usuário Create Serva. E vamos ver
o gráfico aqui. Vamos ao gráfico de eventos. E agora vamos codificar o número do botão
Criar Serva. Não acredito que tenhamos criado
uma variável para isso. Vamos clicar no botão,
chamá-lo de botão Criar Serva. Eu sei soletrar Serva, e é variável Agora vamos clicar nele e
pressionar o evento não clicado. Quando eu clico nele, eu só
quero hospedar o Serva. O que eu quero fazer é
pegar a variável de instância do jogo, já
nos
gabamos daqui, e dizer criar Serva Vamos executar o evento create que criamos
na lição anterior. Para o servoname,
vou apenas
arrastar essa variável servoyme Bem como a quantidade de slots. A mesma coisa para
a linguagem Sera e a mesma coisa para a linha de uso Nós terminamos aqui.
Isso deve funcionar. Agora, se eu clicar em
Play, eu crio o Serva. Eu seleciono o nome, por exemplo. Aqui eu seleciono um mapa, o que eu quiser. Vamos defini-lo como público. Se eu clicar em Criar, agora ele deve
criar os servidores Veja, agora estou dentro de
qualquer vitrine que eu criei. Agora ele está me mostrando o mapa do
menu principal ou a interface do usuário do menu principal. Porque não temos os modos K
padrão selecionados. Temos nosso menu principal. Mas se eu simplesmente abrir meu
próprio mapa que eu codifiquei, se eu apenas ver aqui
o que eu selecionei, se eu abrir o Inferno, isso deve funcionar corretamente Se eu clicar em Plano, vou esperar
por ele mais uma vez. Depois de abrir, desta vez
vou selecionar Inferno porque tenho o modelo correto para ele e vou criar o Serva Vou deixar que seja no
Inferno e depois vou
criar o Serva Agora ele deve estar dentro daqui, você pode ver que funciona corretamente. Agora estou realmente
dentro do meu jogo, posso jogar como
contraterrorista e agora estou realmente
jogando corretamente. Tudo está funcionando
como deveria. Esse servo de criação agora
está funcionando. A próxima coisa em que precisamos trabalhar é
no
navegador Servo e assim por diante Mas antes de fazermos isso, quero
mostrar como você pode adicionar uma animação de interface de usuário a essa interface para torná-la um
pouco mais interessante. Se você não estiver interessado
em criar uma animação de interface de usuário, você sempre pode pular
para a próxima lição Mas se você estiver interessado,
vamos pular.
29. 3.08 Adicionando a animação de IU do Create Server: Ok, vamos criar algumas animações para a interface do usuário para torná-la um pouco
mais interessante. O que eu quero fazer é,
se eu clicar em jogar, quero que a interface do usuário aqui
apareça na tela e depois desapareça quando eu clicar em Voltar. Vamos
seguir em frente e fazer isso. Vamos adicionar alguma animação
aqui embaixo na etapa de animação Se você não a vê, se ela se
parece com isso para você, você sempre pode clicar aqui. E então, no layout para
colocá-lo aqui, adicione uma animação. Para a nova animação, vou chamá-la,
vamos clicar nela. Agora, queremos
animar tudo só
para facilitar A propósito, você
pode torná-la super complexa com a animação
e ela ficará bem. Mas só para tornar o curso um pouco
mais rápido, vou animar
essa sobreposição
I, vou chamá-la de sobreposição aqui
V. Vamos
chamá-la de Create Serva Vamos clicar em Rastrear e
selecionar Criar Serva. A propósito, você
precisa selecioná-lo antes que apareça. Aqui em cima. Clique aqui embaixo, transforme aqui. Na transformação, agora você
pode jogar com as traduções em que estão na tela. Para o
y. Vou
aumentá-la e movê-la para
baixo para fora da tela. Talvez 1.500 assim, digamos 0,65, eu quero que isso
apareça na tela, mas um pouco mais do
que normalmente é Talvez 150 menos 150. Depois de 1 segundo, digamos zero, a animação agora está fora da tela. E aparece na tela, sobe um pouco
mais do que o normal e depois vai para
a tela assim. Apenas um efeito muito simples. Mais uma vez, eu disse que você torna isso
mais complexo porque você pode animar cada botão
e texto, se desejar Mas, por enquanto, só temos
essa animação aqui. Sempre que jogamos ao
contrário, ele vai voltar. É quando você toca
o botão Voltar. Ok, agora terminamos isso. Vamos compilar e
salvar tudo. O que podemos fazer agora no gráfico, vamos até aqui e codificá-lo. Sempre que abrimos
a criação de Serva aqui, quando começamos na construção do
evento, vamos mover tudo isso Eu vou jogar a animação. Vamos na guia Animação, pegar o comando create Servo anim
e dizer Play Vá em frente e escolha
aquele conectado. Agora, para o
número de loops da animação de reprodução. Eu só quero que ele toque uma vez. Se você tem um loop,
quer jogar por um período indefinido,
certo Zero. Vamos clicar em Control Z. Um é bom para mim.
Isso parece bom. Deixe-me aproximar
tudo isso. Agora, sempre que clicamos
no botão Voltar aqui embaixo, quero reproduzir a animação. Vamos afastar
tudo isso. Faça a animação mais
uma vez, animação. E vamos conectá-lo. Agora, aqui dentro, a
quantidade de flautas é uma. Mas no modo de jogo,
vou jogar ao
contrário agora, em vez
de apenas removê-lo, porque agora você pode ver que realmente
temos um bug. Se eu voltar a jogar
no novo modo de edição,
crio uma série e volto, agora você pode ver que ela não está
reproduzindo a animação E isso ocorre porque o
removemos
da tela instantaneamente após
iniciarmos a animação. Em vez de fazer isso,
vamos copiar isso
aqui e dizer get end time. Estamos chegando ao horário de término e vamos adicionar um atraso. Adicione um atraso de acordo com o tempo necessário
para reproduzir essa animação. E deixe-me afastar tudo
isso conectado. Agora vamos compilar
e clicar em Play. E teste com Serva. Ele aparece clicando em “ Volte”. Ele remove assim. Incrível. Agora também temos uma animação bacana
em nosso jogo. Se quiser jogar
um pouco mais rápido, você sempre pode alterar
a velocidade de reprodução Vou alterá-lo para
1.1 em vez de apenas um. É um pouco mais rápido e você pode tentar
ajustá-lo como quiser Ok, acho que está
tudo bem. Então, vamos salvar tudo e passar
para a próxima.
30. 4.01 Criando o widget do navegador de servidor: Vamos agora criar os widgets
do navegador Serva. Vamos dar uma olhada na interface
do usuário do menu principal. Agora vou um
pouco mais rápido do que o normal, porque agora temos
experiência nisso. Vamos criar a interface do usuário. Vamos
chamar isso de navegador Serva Antes de fazermos qualquer coisa,
vamos ao menu principal do player. Abra o
controle do player aqui. Vamos adicioná-lo ao widget
que criamos anteriormente. Se eu abrir o
widget de exibição mais uma vez, botão direito do mouse e
digo criar widgets Vá em frente e crie
aqui
o navegador do servidor que acabamos de criar. Promova-o como uma variável
e chame-o de navegador Sera. Só preciso soletrar
corretamente. Ok, assim. Vamos arrastar a partir disso e
dizer Adicionar à janela de exibição. Vamos acionar o navegador do servidor, clicar com o botão
direito do mouse e convertê-lo em
um get validado.
Se não for válido, vamos
criá-lo se for válido Vamos simplesmente adicioná-lo à janela de exibição. Vamos arrastar esse
navegador do servidor até aqui também. Mais uma vez, coloque-os juntos, faça com que fiquem bonitos. Agora vamos pular
para o widget ocultar. Arraste o navegador SERA e converta em um get validado. Então, novamente, retire dos erens. Dessa forma, podemos removê-lo
da tela, se necessário. Novamente,
juntando-os, fica bem. Compile e salve. Agora criamos isso. Vamos garantir que
tudo esteja funcionando. Vamos ter certeza, vamos
voltar ao menu principal. Dê uma olhada no navegador
Servo,
na verdade, no navegador Servo. Vamos dar uma
olhada no menu principal. Sempre que
clico na junta sera, ela fecha o menu principal e abre
o navegador Servo O código que fizemos
já está no menu principal. Deixe-me adicionar uma imagem aqui
para garantir que ela esteja aberta. Ao clicarmos nele,
basta adicionar uma imagem aqui. Vamos mudar a
tonalidade para não
ficarmos cegos novamente com Se eu clicar em Play, Join Servo, ele será aberto aqui E eu não compilei
isso. Isso me cegou. Deixe-me deletar isso por enquanto. Está funcionando perfeitamente. Vamos salvar tudo e
passar para a próxima, onde
projetamos o navegador Servo
31. 4.02 Como criar o widget do navegador de servidor: Tudo bem, por projetar
o navegador do servidor. Vamos abri-lo para este. Eu só vou, mais uma vez,
mostrar a vocês o que vamos fazer. Você o tem visualmente e é
muito mais fácil de compreender. É isso que estamos tentando fazer. Estamos tentando ter uma barra superior aqui onde possamos
pesquisar um servidor. Podemos escolher o
idioma, o servidor terrestre, podemos ocultar servidores completos e também podemos
atualizar os servidores Então, temos os servidores aqui
embaixo em uma lista. E é simplesmente isso. Eu posso ver que
também está faltando um botão Voltar para este. Então, podemos sempre
adicionar um botão Voltar aqui em cima,
ou talvez aqui embaixo. Não importa, nós
vamos descobrir isso. Mas é isso que estamos
tentando projetar. Deixe-me arrastar
isso para o lado e vamos começar de novo. Precisamos de um painel de tela
para começar aqui. Então temos uma caixa vertical porque temos dois elementos um
em cima do outro. Primeiro, precisamos de uma sobreposição, porque preciso de uma
imagem de fundo para minha interface Vamos arrastar
isso e ancorar a caixa vertical
no alinhamento central 0,50 0,5 e a posição 20,0 Agora esta
caixa vertical está no meio Agora, para essa sobreposição, vamos realmente tornar
a caixa vertical um pouco maior e mudar
a posição para zero Mais uma vez, temos algum
espaço para trabalhar. Agora, para essa sobreposição, preciso
adicionar uma imagem porque preciso um plano de fundo ou da minha
interface de usuário para esta, vamos adicionar um dos planos de
fundo Se eu for às imagens, vou apenas adicionar o que
usamos anteriormente,
esse painel azul. Eu vou adicioná-lo. Vou
clicar nessa sobreposição Está tudo bem
na sobreposição, então vou
clicar na imagem e alinhá-la
horizontal Agora parece
embaçado porque, novamente, precisamos passar para o bruto como duas caixas e subir
0,5 na Isso fará com que
pareça muito melhor. Agora, podemos sempre alterar o tamanho desta,
desta sobreposição aqui Mas, em vez de fazer isso, vamos adicionar conteúdo a ele. E essa imagem de fundo
se ajustará e ficará ótima aqui. Quero adicionar uma caixa horizontal, porque preciso adicionar todos
os meus elementos nela. Agora, adicionando uma caixa horizontal
com essa caixa horizontal, vou alinhá-la verticalmente
ao meio Mas vou alinhá-lo até
o outro
lado horizontalmente Então, ocupa todo esse lugar. Vamos adicionar alguns elementos a ele. Portanto, parece melhor
se eu voltar para a interface
do usuário e o menu principal e copiar o texto
aqui do menu principal. Porque eu realmente não preciso
recriar o controle C. Volte aqui na
caixa horizontal de controle V para colá-lo Agora, para este texto, vou
alterar o tamanho para 16. Quanto ao espaçamento aqui, vou adicionar um espaçador
antes de adicionar a placa de entrada Adicionando um espaçador
aqui para o espaço, vou
dar 15 no x. Depois vou voltar para
o portão I que criamos E eu vou
copiar este, voltar o controle V para a caixa horizontal. Nós o
temos aqui dentro. Agora, para esta caixa, você pode ver que ela preenche toda
a tela ou toda a imagem de fundo O que podemos fazer agora
é sempre clicar na caixa horizontal. No preenchimento, vamos tentar colocar pouco de preenchimento
para a esquerda, vou dar
uma pintura de 30
e, à direita, também vou
dar um preenchimento de 30 Na parte superior, também vou
colocar um preenchimento de 20 na parte inferior 20 Temos algum espaço para
trabalhar aqui para este texto. Eu posso ver que está um
pouco levantado e isso é porque nós o copiamos e
ele tem um Vou escrever zero no preenchimento.
Não tem nada. Agora, acho que a altura dessa barra de entrada
é um pouco alta demais. Eu só vou
reduzir o tamanho. Lembre-se de que, no
preenchimento aqui embaixo, você sempre pode alterá-lo de 20 para talvez algo como 12 Acho que parece um pouco melhor
agora para o tamanho. Nós realmente não precisamos nos
preocupar com isso por enquanto. Podemos simplesmente clicar em Preencher aqui. Agora ele vai
preencher toda a área. Mas, novamente, isso ocorre porque
precisamos adicionar mais elementos. E vai
ser muito menor. Novamente, vou
adicionar um espaçador. Duplique esse controle
D, baseie-o aqui. Vou definir o tamanho para 35. Então eu vou
copiar esse texto. Solte-o no chão. Vamos chamar isso de, o próximo é o
idioma da linguagem. Agora vamos voltar
ao create sera. Vou copiar a caixa de
idioma aqui, controlar novamente o controle V. Você pode ver que há muitas
cópias coladas aqui
para esse espaçador Eu vou copiá-lo
também. Passe por aqui embaixo. Agora temos este pronto
novamente para esse idioma. Novamente, clique em Preencher. Ela se enche exatamente como
esta barra aqui. Vamos agora copiar esse texto novamente. Passe por aqui embaixo. Para este, vamos chamá-lo. Somente servidores, só mostrará
os servidores terrestres. Vamos adicionar esse espaçador aqui embaixo. A próxima coisa que precisamos adicionar é a caixa de seleção que
não criamos antes Vamos procurar por Checkbox
Racket aqui,
na na Agora, para essa caixa de seleção, se eu apenas ampliar para que você
possa realmente vê-la nessa caixa de seleção, vamos clicar no
estilo do estilo Por padrão, ela está desmarcada.
Imagem não verificada Vamos dar uma
olhada em nossos botões aqui. Botões. Agora eu fiz este para você,
chamado caixa de seleção. Clique e arraste-o
para aqui desta forma. E a mesma coisa
antes de fazermos isso, na verdade, antes de
copiarmos, vamos dar uma olhada no tamanho. Agora, para o tamanho,
vou com 40 por 40. O tamanho da caixa de seleção é
um pouco maior para a cor. Você pode ver que está um pouco escuro. Não se parece com esse. É muito mais escuro aqui. Ao clicar nele,
vou mudar a cor
do primeiro plano
em vez de herdar,
remover isso, torná-lo branco assim Clique, ok, agora
é a cor verdadeira. Então, mantenha pressionada a
tecla Shift e clique com o botão direito, depois segure a tecla Shift e
clique com o botão esquerdo para colar
em todas elas. Agora deve estar correto. Agora, deixe-me copiar estilo da
imagem não marcada na parte superior do mouse E pressionado para passar o mouse, vou alterá-lo para
pairado para o pressionado Vou alterá-lo para pressionar
isso deve estar correto. Vamos minimizar tudo isso agora. Também temos a imagem verificada. Vamos dar
uma olhada. E está aqui. Se eu me gabar disso novamente, vou mudar o
tamanho para 40 por 40, depois vou
copiá-lo para os outros dois Mude o segundo
para o tesouro selecionado, o último para a prensa
selecionada Agora temos todos eles. Você sempre pode testá-lo
clicando em um servidor Play and Joint.
E então você pode tentar dar uma olhada neste
e ver se está funcionando corretamente e
se está tudo bem. Vamos voltar. Vamos adicionar um espaçador aqui também.
Vou copiar isso. Clique aqui, controle
V para colá-lo, e você cola esse espaçador. Agora vamos fazer a mesma
coisa aqui. Vou copiar esse espaçador. Cole aqui.
E então vamos copiar, na verdade, você pode vê-lo além do espaçador na parte superior dessa caixa
de seleção É por isso que
às vezes eu clico
nesta caixa horizontal aqui e para ter certeza de
que está colada corretamente Para este texto, vamos
colá-lo também. Vamos chamar isso de servidores
de texto de fall. Vamos copiar o
espaçador mais uma vez,
copie a caixa de seleção passada Vamos copiar o
espaçador maior aqui, passado. Agora, aqui vamos
ter o botão de atualização. Vamos voltar ao menu principal. Vou copiar este, controle C. Vou
voltar para o servidor, controle
do navegador V.
Agora temos. Vamos chamar esse texto de novo. Tudo está
bonito, desse jeito. Agora vamos torná-lo um pouco maior. Vou clicar
neles para
ver as linhas tracejadas Então eu posso ver minha garrafa aqui. E eu vou
torná-lo um pouco maior assim. Não preenchendo a tela inteira, mas também dando
algum espaço. Então, algo assim aqui para este botão, eu
posso ver que é pequeno. E isso também ocorre porque, para essa sobreposição do botão,
temos um pouco de preenchimento Vou escrever
zero no preenchimento, para que fique um pouco maior E agora parece muito melhor para esse preenchimento ou para
o espaçamento aqui Em vez disso, vou dar um
espaçamento de 50. Portanto, há um pouco mais de espaço para o tamanho dessa caixa de entrada. Novamente, vou
torná-lo um pouco mais pequeno, oito por oito
na parte superior e inferior. Então, fica menor,
mas, como você pode ver,
na verdade está se enchendo verticalmente Então, vou clicar
nesse do meio. Agora está muito pequeno, então vou aumentar
isso novamente para 12 por 12. E isso é um pouco pequeno demais, então temos que
aumentá-lo muito mais. Talvez 20 por 20, e isso é muito
melhor, 20 por 20. Mas o alinhamento está aqui,
alinhado no meio. Ok, agora terminamos
com essa parte aqui em cima. O que eu quero que você
faça agora está aqui embaixo. Agora, essa foi a primeira sobreposição. Já temos
essa caixa vertical. Vou adicionar uma sobreposição novamente em cima
dessa caixa vertical Agora está abaixo dessa parte superior. Também vou adicionar um espaçador,
então espaçamos esses
dois para o espaçador Vou dar a ele um valor
de 15, clicando nele, valor de 15 no
Y para essa sobreposição Novamente, adicione uma imagem aqui para a imagem que
vou usar
novamente, o painel azul. Se eu for até as imagens, encontrar o painel azul, arrastá-lo novamente, para essa imagem,
quero preencher a coisa toda. Agora, para essa sobreposição, em vez de
preencher apenas essa parte, vou clicar
nessa sobreposição e preencher o resto da interface do usuário dessa
imagem Novamente, vou configurá-lo
para a caixa 0.5 para que fique melhor.
E aqui está. Dentro dessa sobreposição, o que precisamos é de
uma caixa vertical em Editar Dentro dessa
caixa vertical, também precisamos de uma caixa em uma caixa de rolagem. Para esta caixa vertical, faça com que ela seja preenchida vertical
e horizontalmente Para a caixa de rolagem, está
tudo bem. Não precisamos alterar nada
agora para adicionar aqui
à caixa vertical
porque não quero adicionar
elementos à borda desse plano
de fundo. Para o preenchimento esquerdo e direito, vou dar
35 por 35 e, no topo, 28 por 28 Temos algum espaço e
sempre que adicionamos conteúdo, nós o adicionamos dentro daqui
e não em cima de lá. Ok, antes da caixa de rolagem, precisamos de uma
caixa horizontal porque precisamos adicionar algum texto para fazer isso. E então eu vou
adicionar um espaçador. Eu disse o espaço mais tarde. Por enquanto, vamos
projetá-lo aqui. Vou copiar esse texto. Vá até minha caixa horizontal. Clique no controle V para colá-lo. Agora, para este, ele
vai dizer nome do servidor. Em seguida, vou clicar em Control V novamente
algumas vezes. Eu copio esse texto aqui
algumas vezes. O primeiro é
chamado de nome do servidor. Então precisamos do mapa. Precisamos dos jogadores, da
quantidade de jogadores que
estão dentro do servidor. O último é chamado de
quanto gosta, agora, como deveria ser. Na verdade, não sabemos no momento porque preciso
alinhar esses textos, seja qual for o servidor aqui, por
exemplo, seu tamanho, e assim por diante Portanto, não podemos realmente projetar o espaçamento entre
eles agora Vamos parar aqui, salvar tudo,
garantir que tudo funcione. Antes de fechar
isso, podemos nos juntar, você pode escrever coisas aqui, alterar o idioma, marcá-las. Você também pode clicar
na atualização, e tudo está ótimo
agora para o tamanho e
tudo Podemos continuar mais tarde. Mas, por enquanto, precisamos
projetar o próprio servidor antes de concluirmos
a parte aqui embaixo. Vamos fechar tudo por enquanto. E vamos passar
para a próxima lição.
32. 4.03 Criando o widget de cartão de servidor: A interface final que vamos criar é mais ou
menos assim. Aqui temos o idioma , o
nome do servidor e o mapa. Quantos jogadores estão na série? E também o ping do soro. A razão pela qual projetamos a placa do servidor
sozinha e não dentro
do navegador do servidor é
porque ela é uma lata. Ele contém valores dinâmicos, assim como se você criasse uma loja. Então, digamos que você
tenha um jogo de RPG e tenha
uma loja de itens, o eu, a loja de itens,
você pode projetá-lo No entanto, os cartões
individuais dos itens são, na verdade,
criados por eles mesmos porque na verdade não precisamos copiar e colar cada Cod , então há muitas cópias e colagens e isso
não é muito bom,
dá muito trabalho O que podemos fazer é
criar um item Cod. Então, podemos simplesmente alterar
o valor dinamicamente e copiar e colar o código
aqui Nesse caso, estamos
criando um servidor. O servidor que estamos
criando dinamicamente, vamos
adicioná-lo dependendo do que
o jogador adicionou como valores Em seguida, ele
será adicionado aqui embaixo. Vamos continuar e projetar
este. Deixe-me falar pouco, vamos fechar
tudo isso por enquanto. Vamos clicar com o botão direito do mouse, fazer
um novo orçamento, um plano. Vamos chamar esse de Serva. Agora vamos
abri-lo aqui dentro. Vamos pesquisar novamente o painel de
tela. Vamos adicioná-lo. Agora, para isso, vou
alterar a tela desejada, tamanho
da tela,
certifique-se de que seja novamente Para laptops, estamos
projetando isso. Agora, o que eu quero
criar aqui, primeiro precisamos de um plano de fundo
e precisamos do botão. Estou voltando
ao menu principal. Vá em frente e copie isso primeiro. Botão de controle C, controle
V. Agora, para essa sobreposição, vou mudar o
ponto de ancoragem para ficar no meio Em seguida, o alinhamento, 0,50 0,5
e a posição Y, X e y00. Agora, quanto ao tamanho, sempre
podemos decidir
isso mais tarde, porque você pode alterar o tamanho
da sobreposição dessa forma Novamente, você tem que fazer um
00, novamente, o X e o Y. Mas, por enquanto, não vamos
nos preocupar com o tamanho Vamos apenas mudar o conteúdo. O que eu quero primeiro é a bandeira, porque quero
mostrar em qual idioma o servidor está
tirando uma imagem. Vou apenas
adicionar ícones aqui. A imagem está antes do texto e estará aqui
no meio, verticalmente Antes de fazer isso, você pode
ver que eles estão um em cima do
outro porque não
adicionamos uma caixa horizontal, procurando por uma caixa horizontal, adicionando-a aqui embaixo, adicionando a imagem a ela e
também o texto a ela. Agora, quanto à caixa horizontal, vou alinhá-la
no meio e depois preenchê-la horizontalmente para o texto que vou alinhar no Remova todo o
preenchimento que ele tem. Então, executando zero aqui, compile agora para este ícone Ainda não temos nenhum ícone. Agora, isso é para o meu jogo, mas para as bandeiras, porque precisamos dos idiomas, quero que você leia os materiais do curso
que eu lhe dei Dentro dos materiais deste curso, acesse a interface do usuário e temos
ícones aqui. Eu só quero que você os pegue, os
arraste para o jogo,
e aqui estão. Agora, para aqueles,
vou escrever clique em Editar seleção
na matriz de propriedades. Normalmente, é sempre bom
nos detalhes do nível. Para alterar o grupo de
texturas para interface do usuário, ele lê corretamente
e os botões ou a interface
do usuário também ficam bem na compactação. Para a compressão,
vou
alterá-la para a interface de usuário dois D. Agora você só precisa
escrever , clicar e editar
via matriz de propriedades. Se você estiver editando
vários itens ao mesmo tempo. contrário, você pode simplesmente, se
tiver apenas um item, clicar duas vezes
nele, abri-lo
e, em seguida, alterar as configurações de
compressão para o que fizemos agora e também
o grupo de texturas. Ok, agora você tem
isso. Vamos voltar à interface de usuário que estamos
projetando aqui. Vamos clicar na imagem. Deixe-me clicar aqui
e pesquisar o ícone. Vamos apenas adicionar um dos ícones. Isso realmente não importa.
Novamente, esses são valores dinâmicos, vamos
alterá-los mais tarde. Agora, para a caixa horizontal, só para que
pareça um pouco melhor. Agora vamos clicar na sobreposição. Basta torná-lo um pouco maior para que tenhamos
espaço para trabalhar. E aperte zero no X aqui para a
caixa horizontal à esquerda e à direita. Eu não quero que
esteja aqui no limite. Vou colocar um pouco de
preenchimento para a esquerda, 25, direita 25, algo
assim. Para o tamanho y. Para o Y, vou dar um tamanho de 104, talvez algo assim. Talvez seja muito grande. Sempre podemos torná-lo um pouco menor e
testá-lo mais tarde. Mas, por enquanto, está tudo bem. Vamos definir a posição para zero. Agora, o primeiro
é criar servidor. Vamos adicionar um espaçador entre
a bandeira e o texto. O espaçador para
este é 15 e o x. Agora esse é o servidor Vamos chamá-lo de nome de
servidor aqui. Eu só vou dizer,
por exemplo, servidor. Podemos, por exemplo, dizer Inferno apenas porque
é isso que estamos jogando. Digamos chinês porque
é um servidor chinês. Digamos que tenha sido
chamado de algo assim, realisticamente Agora, depois disso, precisamos do
tipo de mapa que estamos jogando. Eu posso simplesmente controlar
isso para duplicar. E posso dizer, por exemplo, que estamos jogando duas vezes
em um strike. E vamos duplicar o espaçador
também. Adicione aqui embaixo. Agora, o problema de
adicionar um espaçador aqui, vamos tornar essa
sobreposição um pouco Vou dar um pouco mais de espaço
e depois
reposicioná-lo no X.
Agora, o problema é adicionar
um espaçador aqui agora é que, se
escrevermos um Servoname mais longo Eu não quero fazer isso porque dentro do navegador do servidor, nós os temos configurados em
uma posição fixa. Se isso for ignorado, não
se alinhará
com o título do mapa aqui Da forma como fazemos isso,
em vez de usar um espaçador, clicamos no texto Em vez disso, você fornece a largura mínima
desejada aqui. Vá em frente e
aumente a largura mínima desejada para
algo que você goste. Você pode ver que
ainda não está mudando porque é
mais longo do que isso. Mas se você chegar a
um determinado valor, ele começará a afastar
o outro texto. Para este, vou
dar a ele um valor de 685. Eu testei um pouco, e
o outro valor aqui, vou dar 225. Você só precisa fornecer um
valor para garantir
que essa largura seja maior
do que o nome do servidor. Else vai sair. Agora temos isso.
O próximo passo é duplicar esse texto e escrever
a quantidade de jogadores A quantidade de
jogadores, por exemplo, pode ser de 100 jogadores
conectados e 100 jogadores no máximo dentro do
servidor. Ou essa. Vou
diminuir um pouco
a largura porque
realmente não precisamos de tudo isso. Talvez 115, a última coisa, vamos duplicar
este e ligar para ele Agora vou adicionar
um espaçador porque o mínimo não está me
dando espaço suficiente Então, vou adicionar
um espaçador aqui em cima. Vou adicionar os espaçadores
à caixa horizontal. Coloque-o aqui
para este espaçador, eu vou dar
algo como 150 Agora, para esse ping,
vou escrever, por exemplo,
algo assim. Senhora, este é um servidor muito lento. Para o mínimo projetado com. Vou deixar que seja
até 115. Isso é bom para mim. Agora vamos compilar e agora vamos adicionar isso ao navegador
do servidor para que possamos realmente ver como é Vamos pesquisar aqui por WB. E você pode
pesquisar o código do servidor. E você pode clicar e
arrastá-lo para cima da caixa de rolagem. Se você clicar e
arrastá-lo para a caixa de rolagem, é
assim que ele ficará. Agora, se você
clicar nas linhas de traço para removê-las,
quero preenchê-las Você pode ver que tem algum espaço vazio nas
laterais aqui e aqui. Temos que torná-lo um pouco
mais longo para que caiba. Se eu for até
a sobreposição e der uma
olhada no tamanho da sobreposição, vamos tentar algo como 1.650
Compile e Agora, isso
é o que parece agora. Antes de adicionar mais espaço, também
sei que
haverá uma barra de rolagem. Se eu clicar na caixa de rolagem, desço e clico em Sempre mostrar
caixa de rolagem, ela estará aqui. Agora, quanto ao tamanho,
vou aumentá-lo ainda mais,
1.690, talvez compilar
e dar uma olhada Agora ele preenche a coisa toda. E temos espaço
para a parte de rolagem. Sempre podemos torná-lo um
pouco menor, se necessário. Agora, o que podemos
fazer é ver
que temos um pouco mais de
espaço para trabalhar. Então, eu posso clicar neste e ele pode torná-lo maior,
este também. Podemos tentar tornar tudo
isso maior, se quisermos. Clicando neste texto, vou
aumentá-lo aqui na largura
mínima do projeto. Eu realmente não preciso que os
outros sejam maiores. Talvez o mapa de um possa ser
250, e o outro, este, o nome do servidor,
é o mais importante. Apenas certifique-se de não
empurrá-lo muito para fora. Algo assim. 965 aqui, isso parece
bom para a bandeira Acho que é um pouco difícil de empurrar para baixo, então vou clicar na
bandeira e acolchoá-la Na parte inferior dos dois
é empurrado um pouco para cima. Além disso, para toda a caixa
horizontal, o que podemos fazer é clicar na
caixa horizontal na parte inferior adicionar um preenchimento de quatro É empurrado
um pouco para cima assim. Também podemos
torná-lo um pouco maior. Clique na sobreposição.
Vou fazer isso um pouco maior. Não muito. Algo parecido com isso aqui. Eu acho que parece ótimo. Agora, para o texto, vou
torná-lo um pouco menor. Selecionar todo o texto e o tamanho deve ser
algo como 16. Em vez disso, tudo
está bonito. Vamos compilar clicando
na sobreposição, certificando-se de que a posição
seja 00 e os x e y. Depois, voltemos ao navegador
do servidor E agora podemos dar uma
olhada em sua aparência. Parece muito melhor se eu controlar D para
duplicar os servidores É assim que vai ficar. Agora, precisamos de um pouco
de preenchimento na parte superior e inferior para os botões ,
porque eles
realmente não parecem bons Vamos voltar para a
placa do servidor e clicar em um botão. Vou para cima e para baixo, com um espaçamento
de cinco a cinco Novamente, vou
deixar o botão um pouco maior porque
agora ele é um pouco menor. Apenas aumentando o botão, como na posição
zero em y. Mais uma vez, compile, volte, e agora isso é
o que parece, agora parece muito melhor Agora podemos realmente
alinhá-los aqui para a caixa horizontal Vou pressionar
esse nome de servidor. Está acima desta. Vou colocar um
preenchimento para a direita,
para a esquerda, na verdade
75, algo assim Agora parece muito melhor
à direita aqui. Em vez de ir
até aqui, vou
colocar um preenchimento de 20 após o nome do servidor novamente Podemos simplesmente alterar
a largura desejada, aumentá-la
e afastar todos os outros textos até que esteja
no topo daqui Vou apenas
ampliar, verificar se está alinhado corretamente,
965 assim Clique no mapa, agora altere
a largura mínima desejada, aumente os jogadores, um acima do outro, 1250 Clicar nos
jogadores novamente faz com que log p esteja acima do ping 265 Este
realmente não precisa de um. Você pode adicionar se quiser. Tem alguma largura, não
se solta,
talvez apenas 95. Agora você pode ver que
está muito melhor. Vamos adicionar um espaçador entre
o título e os servidores. Vamos ver se realmente
adicionamos o espaçador. Nós não fizemos isso. Vou
procurar por Spacer. Está aqui nas
sobreposições, então eu clico nele. Temos essa caixa horizontal. Na caixa de rolagem, precisamos
adicionar um espaçador entre eles. E no Y aqui, talvez
seja
algo como dez. Ainda menor, podemos
torná-lo menor. Em vez de dez,
podemos fazer com que sejam seis. Agora podemos compilar agora, está
parecendo muito bom Antes de fazermos qualquer coisa,
vamos também mudar a barra de rolagem porque ela realmente
não parece
boa no momento. Além disso, ao duplicar
muitos servidores, você pode ver que eles estão saindo da tela e a
caixa de rolagem não está funcionando Isso ocorre porque
na caixa de rolagem, você precisa clicar aqui
e definir o tamanho a ser preenchido. Ao configurá-lo para preencher, você pode ver como ele está realmente funcionando. Se eu clicar na parte
mais baixa aqui,
servidor, você pode ver que ela está
realmente rodando corretamente. Isso está funcionando. Lembre-se
de configurá-lo para preencher. Agora vamos consertar a caixa de rolagem. Se eu clicar na
caixa de rolagem e der uma
olhada no estilo da barra aqui para ver
a imagem normal do polegar, vou dar uma
olhada no que tenho Se eu for até as imagens, vou pegar essa barra de
progresso preenchida em amarelo. Vou clicar e arrastar
isso, essa imagem aqui. Acho que não tenho
uma imagem melhor. Talvez esse, mas
acho que esse é melhor. Vou usar esse
como uma caixa de 0,5 na margem. Então eu vou colar isso para
cachorrinho. O evidente e o travesti. Para arrastar, não
tenho uma imagem separada, vou apenas mudar um pouco
a cor. , quando rolamos a caixa para ver
a espessura da barra de rolagem, vou aumentar esta para algo como
32 Além disso, para o preenchimento, precisamos dar
um pouco de preenchimento que não se sobreponha Se eu abrir isso, posso escrever seis à
esquerda, à direita. Nós realmente não precisamos, então vou
escrever zero aqui. Ou o topo é dois. Para a
parte inferior, dois também estão bem. Agora você pode ver
que também está se sobrepondo aos nossos servidores Temos que consertar isso.
Vamos voltar para a placa
do servidor e temos que
torná-la um pouco menor aqui. Vamos dar uma olhada aqui.
Precisamos torná-lo um pouco menor. Você também
pode ver do outro lado. Mas em vez de
diminuí-lo, o que podemos fazer é
clicar nessa caixa vertical. E podemos simplesmente
aumentar o tamanho aqui. Aumentar o tamanho
da caixa vertical também
funcionará. Como você pode ver, ao
ativar as linhas de traço, você ainda está dentro da tela Tente fazer com que tenha a melhor
aparência possível. E eu acho que algo
assim aqui também para o tamanho em X e Y ou
em Y, ou melhor, pode torná-lo um pouco maior
também, parece melhor. Talvez possamos mostrar
algo assim aqui, ou parar assim, porque às vezes eu
paro no meio,
o jogador pode realmente ver há mais
servidores aqui embaixo. Você pode
percorrer a posição. Novamente, vou
defini-lo como zero por zero. E aqui temos o navegador do servidor junto
com o servidor aqui, qual alteraremos os
valores dinamicamente Agora tudo está projetado
e funcionando corretamente. Vamos clicar em Play e
clicar em Joint Sera. Você pode clicar no servidor. Tudo está funcionando bem. Nós temos o som, o
som aqui também. Podemos marcá-los.
Esse está funcionando. Este em que podemos escrever. Tudo está funcionando
como se espera. propósito, isso é o que
parece no meu monitor de quatro K, e isso é o que
parece no laptop. Você pode ver no laptop, ele quase preenche
a tela inteira No entanto, para o meu monitor de quatro K, é assim. Novamente, você sempre pode
escalá-lo mais clicando aqui. E então você pode jogar com
essas configurações de escala e fazer com que pareçam maiores
na minha tela também Agora, se desejar, você
sempre pode criar um botão Voltar. Na verdade, vamos fazer
isso muito rapidamente. Se eu apenas copiar esse botão
aqui, eu simplesmente copio. Controle C, eu clico
aqui, estou de volta aqui. Controle V, dentro
dessa caixa horizontal. Vou arrastá-lo até aqui. vou responder Às vezes, vou responder
ainda melhor,
para o botão Voltar, você sempre pode curtir
um ícone para que não ocupe
espaço para voltar. Vou fazer um espaçador
novamente, controle aqui. O controle V aqui embaixo. E eu vou
arrastá-lo até aqui. Agora também temos espaço
entre eles. Agora, para este botão aqui, em vez de torná-lo
tão grande para que não ocupe
muito espaço, você sempre pode clicar em automático na sobreposição em
vez de preencher E então, com o texto, você pode
preenchê-lo à esquerda e à direita para que não
pareça tão pequeno À esquerda, vou colocar um preenchimento de, digamos 15 e à direita 15,
dê um pouco mais Vamos dar 25,
25, até um pouco mais. 30 por 30, algo assim. Você pode até
torná-lo um pouco maior. Na verdade, vamos
torná-lo um pouco maior. Não é difícil pressionar 35 por 35, algo assim. Agora você pode ver que o
botão Voltar também está funcionando e pode torná-lo de outra
cor, se desejar. Você sempre pode alterar
as cores deles. Então, no botão Voltar, você pode
ir em frente e alterá-lo, por exemplo, novamente para
o usado antes. Era o verde,
algo assim, se você quiser, mas
vou deixar
tudo da mesma cor. Acho que parece bom. Agora
também temos um botão Voltar. Ok, tudo está
funcionando corretamente. Vamos passar para
a próxima lição.
33. 4.04 Adicionando o servidor à lista: Agora estamos prontos para fazer a
programação da interface do usuário, já que
terminamos o design. Então, vamos direto ao assunto. Vamos abrir o
navegador Sera aqui dentro. Antes de fazer qualquer coisa, eu realmente quero
clicar neste. Oculte servidores completos. Eu
vou mudar isso. Acho que para mim é melhor esconder servidores vazios porque
acho melhor esconder os servidores vazios ou
ninguém está jogando. Acho que é melhor
também para esses servidores. Vamos excluir todos eles, porque agora
vamos adicioná-los. Só temos a caixa de
rolagem aqui embaixo. Ok, tudo
está indo bem. Agora vamos clicar no
botão Atualizar. Vamos chamar esse botão de Atualizar. Agora vamos até a
parte inferior e clique em Agora. Vamos deletar
tudo isso por enquanto. Ao clicar no botão Atualizar, queremos encontrar sessões Vamos atacar a partir
daqui e pesquisar. Eu encontro Sessão Avançada, Sessão
Avançada aqui. Encontre sessões avançadas. Vá em frente e selecione aquele
para o controle do player. Vamos atacar mais uma vez
e jogar o controle. Vá em frente e selecione-o
para obter o máximo de resultados. Isso é quantos servidores
você vai encontrar e eu vou
encontrar apenas nove servidores. Vá em frente e procure
por tantos servidores usando terra. Vamos adicionar isso mais tarde. Por enquanto, não se
preocupe com isso. Vamos pesquisar
todos os tipos de servidores. Você pode ver, você
pode pesquisar entre servidores
clientes que
os jogadores criaram ou servidores dedicados
que rodam em outro PC. Pesquise apenas todos os servidores. Para os filtros, esse na verdade não
está funcionando. Também pesquisei sobre
isso porque estava tentando usá-lo e
na verdade não está funcionando Vamos usar outro nó chamado
para pesquisar o filtro. Você pode ver os resultados dessa sessão de
filtro. Vamos usar
esse em vez disso. Todo o resto
parece estar bem. Eu só vou continuar aqui. Sempre que encontramos os
resultados para os servidores, o que queremos fazer é arrastar daqui e dizer que, para cada loop,
vamos fazer um loop Agora, em vez de
conectá-lo aqui,
vou
desconectá-lo daqui
e conectá-lo
até vou
desconectá-lo daqui o sucesso Em vez disso, sempre que
encontramos servidores, esses são os servidores
que encontramos. Agora vamos examinar todos os servidores que encontramos. Para cada um deles, para
cada um dos servidores queremos criar widgets Queremos criar a placa
do servidor porque
toda vez que encontramos um servidor, queremos criar
um cabo de servidor e queremos adicionar essa placa de
servidor aqui. Vamos voltar para pegar
a placa do servidor. Precisamos adicionar esta sessão. Esta é a sessão
que acabamos de encontrar. Este é o servidor ao qual
queremos entrar. Vamos até a placa do servidor. Agora, abra a
placa do servidor, ela está fora daqui. Quero, no gráfico, criar
uma nova variável e chamar essa sessão encontrada
no tipo search for
blueprint session results,
clicando nela para compilar Agora, aqui, eu quero conectar
isso à variável, para que possamos armazená-lo como uma variável. Aqui, temos algumas informações que
você precisa
transformá-las em uma instância editável
e expor no E vá em frente e
compile. O que isso faz é fazer com que apareça aqui. Se você clicar em Arquivo agora
e atualizar todos os nós, poderá ver que ele
aparece aqui embaixo, que você possa arrastá-lo e soltá-lo Agora você realmente tem
algumas informações para essa sessão dentro
dessa variável, que você pode usar mais tarde. Porque lembre-se,
no código do servidor, temos esse botão
aqui onde
entramos no servidor sempre que
clicamos no cabo, sempre que clicamos no cartão. No futuro, podemos nos juntar a
esse servidor porque agora
temos as informações
de cada servidor que encontramos. Vamos
criar um código de servidor. Vamos adicionar esse
código de servidor à lista de servidores. Para a caixa de rolagem, vou chamá-la de
caixa de rolagem SB e depois lista de servidores Vá em frente e faça disso uma variável. Vamos agora arrastá-lo até aqui. Arraste a partir daqui e
diga adicionar criança. Agora vamos adicionar
esse cordão a ele. Antes de fazermos isso,
lembre-se de que você também precisa remover os servidores
antigos se atualizar e, se você clicar em atualizar novamente, precisará
remover os antigos Para fazer isso, vamos voltar aqui. Antes de fazermos a sessão
fina, clique na lista de servidores mais uma vez
e depois limpe as crianças Vamos limpar
os servidores antigos da lista e, em
seguida, começar a pesquisar
novamente por novos servidores. Isso já deve funcionar. Agora, se eu clicar em Jogar, deixe-me criar
dois jogadores aqui. E eu vou jogar
como servidor de escuta. E eu clico em play e aparece
na minha segunda tela. Agora, na minha tela aqui, vou
criar um servidor aleatório clicando em Criar. E eu vou tentar me juntar
a ela aqui. Se eu clicar em Atualizar, devo esperar um pouco aqui pois leva algum
tempo para encontrar servidores E uma vez que tenha sido atualizado, ele deve aparecer aqui e eu deveria ser capaz de vê-lo
. Eu posso ver isso aqui. Você pode ver que o nome está errado, todas essas
informações estão erradas. Isso ocorre porque não
codificamos realmente as informações
para o código do servidor Mas eu posso ver meu servidor. Este é o servidor
que eu criei aqui. Se eu clicar nela,
nada acontece porque ainda não codificamos
a sessão conjunta,
mas sabemos que ela está funcionando agora E agora diz que somente as leis de controle
locais podem ser atribuídas aos widgets E vamos ver o que está
acontecendo aqui. Aqui, está nos dizendo que
somente os controles locais do jogador
podem criar isso aqui. E isso porque, a propósito, isso não vai acontecer para você,
para o seu jogo. Porque estou jogando com
dois jogadores e lembro que o menu principal está
no modo single player. Isso ocorre porque estou
tentando executar para jogar como servidores de
escuta
no mesmo computador no menu principal de um único player. É por isso que isso está
acontecendo, se você também quiser consertá-lo, para não
receber esse dinheiro o tempo todo Você sempre pode
clicar com o botão direito do mouse aqui e pesquisar controlador do player
local e escolher este chamado Is
Local Player Controller. Vamos adicioná-la aqui antes de fazermos qualquer coisa com a interface, para que ela não nos
dê essa era. Novamente, pegue o galho
e vá em frente e conecte-o. Se for um controlador de
player local, vá em frente e faça todas as coisas
da interface do usuário. Se não for,
não vamos fazer nada. Você sempre pode ir em frente
e clicar em Jogar. Tente novamente criar
um servidor como esse, tentando entrar e assim por diante. Deveria nos dar a era, se é como antes, mas nós a corrigimos agora. Portanto, na verdade,
não deveria nos dar a era. Mas você pode ver que
não temos uma era para ir e
voltar nos menus. Tudo bem, então foi isso. Conseguimos encontrar sessões, mas vamos torná-las mais complexas durante as aulas. Agora vamos passar
para a próxima lição.
34. 4.05 Adicionando um indicador de servidores atualizando: O problema que tenho
com isso
agora é que, sempre que eu atualizo, não recebo um indicador
para saber se estou realmente atualizando os servidores
ou por que estou ganhando O jogador ficará
um pouco confuso. Porque imagine que eu
clico em Atualizar agora, e está vazio aqui e eu não
sei o que está acontecendo Preciso saber se
na verdade está atualizando os servidores. Vamos fechar isso
e criar isso. Agora isso é muito, muito simples. Só precisamos adicionar alguns textos para que o jogador saiba que é refrescante se eu apenas
copiar um dos textos Este, por exemplo,
Controle C. Vou descer, vamos ver, temos
a caixa horizontal. Caixa vertical, e
temos a sobreposição aqui. Na verdade, vou
colá-lo
neste controle de sobreposição V aqui Vamos dizer que
atualize os servidores, por favor. Vamos dizer que atualizando
servidores, por favor, espere, vou duplicar este porque quando não
encontrarmos servidores, vou apenas
esconder o primeiro Então eu posso ver o segundo. Este vai
dizer que nenhum servidor foi encontrado. É quando pesquisamos, mas
na verdade não há servidores. Agora temos esses dois.
Esse e esse. Você pode simplesmente esconder
um deles se
quiser , para que
não pareça estranho Clicando no
primeiro, vou ligar
para os servidores de atualização O segundo eu
vou chamar de mensagem de texto. Sem servidores, eu não clico nos dois e
faço com que sejam dois é variável. Agora vamos ao gráfico aqui. Quando procuramos por uma sessão, vamos pegar o texto
de atualização dos servidores Vamos arrastá-lo e dizer
visibilidade definir visibilidade. Agora vamos
mostrá-lo na tela e mostrá-lo como testável Novamente, não interagimos
com ele com o mouse. Depois de encontrar as sessões aqui, devemos arrastá-la e dizer definir a
visibilidade como oculta, porque agora encontramos servidores e não precisamos mais
ver isso. No entanto, se não
encontrarmos nenhum servidor, devemos considerar isso e dizer que configure a
visibilidade para ser testável Porque agora queremos mostrar que não
encontramos nenhum servidor. Como sabemos que isso é? Porque se os resultados forem zero, se você pegar essa matriz, digamos comprimento, se o
comprimento dessa matriz, digamos que se for
maior que zero, então encontramos a sessão. Podemos arrastar aqui e
dizer ramificação conectada. Agora estamos dizendo que se o comprimento dessa
matriz resultar aqui, ela é maior que zero. Isso significa que
encontramos um servidor. Então, podemos seguir em frente
e fazer tudo isso. No entanto, se não
encontramos um servidor, se ele estiver vazio,
precisamos exibir este onde
não encontramos um servidor. Agora lembre-se de que esse também
precisa ser escondido. Sempre que começamos,
eu simplesmente vou embora. Cole aqui, vamos configurá-lo como
oculto e conectado. Agora,
vamos remover este de qualquer maneira, mesmo que seja zero ou maluco. Depois de atualizarmos
aqui sobre o sucesso, vamos continuar e esconder isso Vou
conectá-lo aqui novamente. Vamos simplesmente afastar as coisas. Há espaço. Empurre
isso para baixo assim. Vá em frente e clique duas vezes
nas notas aqui para redirecionar e fazer com que
tudo Tudo bem, isso deve bastar. Se compilarmos e clicarmos em Play apenas para ver
o que estamos fazendo aqui, deixe-me criar um servidor Na tela aqui, eu crio um, Vamos entrar no servidor. Você pode ver, nós podemos
ver isso imediatamente. Na verdade, eu tenho que fazer
algo sobre isso. Clicando no primeiro, só
queremos esconder isso. Nenhum servidor encontrado. Por padrão, devemos descer e definir
a visibilidade como oculta. Sem servidor, este está oculto. Agora, para este,
ele deve atualizar os servidores imediatamente quando eu me conectar ao navegador do servidor Eu não deveria esperar para
pressionar o botão de atualização, porque é irritante
que você tenha que pressionar o botão de atualização na primeira
vez que entrar no navegador do
servidor O que podemos fazer é adicionar esse código à construção do
evento. Novamente, isso é como
um evento para começar a jogar. Novamente, a construção do evento ,
em vez de apenas copiar tudo
isso , vou
selecionar tudo. Todo o código aqui, vamos
resumir em uma função. Agora você notará que não
pode entrar em uma função. Você verá aqui que, se eu
clicar com o botão direito do mouse e fechar para funcionar, você verá que não é
possível reduzir para uma função. Isso ocorre porque quando
você tem eventos cronometrados, quando vê esse
relógio na função, não é
possível transformar uma função
como essa em um evento Em vez disso, vamos clicar com o botão direito do mouse
e reduzi-la em uma macro. A diferença
entre uma função e uma macro é a macro. Na verdade, você pode criar
vários pinos de execução Vamos mudar
o nome por enquanto. Vamos chamá-lo de Find Sessions. Agora, dentro dessa macro, vamos adicioná-la aqui
dentro de uma macro. A diferença entre
uma função e macro está na função, eu posso fazer alguma coisa
e posso arrastar essa função até aqui
e trabalhar com ela. No entanto, em uma macro,
você pode fazer o mesmo, mas na verdade pode ter
vários pinos de execução Eu posso ter vários pinos
de execução. E eu posso fazer mais coisas aqui
com os pinos de execução. Essa é a característica única
de uma macro, mas, por enquanto, vamos excluí-la
em vez da macro. Deixe-me colocar as coisas aqui. Está limpo na saída. Podemos simplesmente fazer uma
saída aqui quando você
quer apenas uma saída sem aqui. Mas você pode fazer isso, o segredo
é simplesmente escrever então. Se você escrever,
o texto desaparecerá. Vamos apenas nos conectar.
Tudo parece ótimo. Vamos deletar essa
nova função que eu criei. Agora, para a
sessão fina, podemos arrastá-la e conectá-la à construção
do evento. Eu clico em Jogar e
clico no servidor conjunto. Deve fazer isso agora, deve dizer que nenhum servidor
foi encontrado porque na verdade,
eu ainda não criei
nenhum servidor esperando. Agora diz que nenhum servidor foi encontrado. Se eu clicar em atualizar novamente, porque agora eu realmente
criei um servidor Agora ele deve exibir meu servidor. Deve esconder todo
o texto que estou aqui. Agora ele deve
aparecer. Aqui vamos nós. Se eu clicar em atualizar novamente, ele deverá aparecer novamente. Tudo está funcionando
corretamente como deveria. Agora, o jogador sabe que os servidores estão sendo
atualizados. E vamos seguir em frente.
35. 4.06 Mostrar a função de resultado de sessões: Tudo bem, então o que eu quero
fazer é aqui, nas
boas sessões, eu quero separar as boas sessões
de quando você filtra. Clique com o botão direito do mouse em pesquisar
por filtro e temos esse chamado resultados da sessão de
filtro. Eu quero fazer isso em uma função separada, em vez de apenas continuar
e fazer isso aqui. Porque quando filtramos, quando clicamos em Jogar
e entrar no servidor, filtramos por servidores terrestres. Quando filtramos por idiomas, imagine quando você clica em
um deles e
precisa atualizar todos
os servidores novamente, eu
não quero fazer isso Por exemplo,
digamos que somos ingleses, estamos mudando para alemão. Imagine que, se
fizermos isso, teremos que encontrar as sessões
novamente e ele terá que encontrar
todas as sessões novamente. Ele exclui as sessões antigas.
Eu não quero fazer isso. Quero que ele seja filtrado a partir das
sessões que já encontramos. Em vez de fazer o
filtro aqui dentro, vamos fazer isso em uma função
separada. Vou criar uma nova
função aqui e chamá-la mostrar os resultados da sessão. Vamos atacar a partir daqui e
dizer filtrar os resultados da sessão. Vá em frente e use essa função. Agora podemos filtrar os
servidores que queremos filtrar. Agora, aqui precisamos de
um resultado da sessão. Vamos voltar para definir a sessão. Precisamos dessa entrada aqui. Agora, todo esse código
aqui que
temos, podemos realmente adicioná-lo
ao filtro porque
não precisamos dele dentro
daqui, também do comprimento. Vou selecionar tudo
isso e, em seguida, controlar X para recortá-lo e ir para mostrar
os resultados da sessão. Vou
colar
aqui embaixo para não perdermos
essa informação. Agora, para as boas sessões aqui, o
que vou
fazer é simplesmente excluir esta. Clique com o botão direito aqui, promova
isso para uma variável. Vamos chamar isso de resultados de uma
sessão. Vá em frente e
conecte-o depois deste. E clique duas vezes para criar um nó de rota traseiro e
deixá-lo limpo. Depois de encontrar os resultados da
sessão, vamos continuar e mostrar
os resultados da sessão. Porque agora
vamos filtrar por isso. Precisamos de uma contribuição para isso. Vou clicar
nessa função. Faça uma entrada para o tipo. Novamente, pesquise os resultados da sessão de
blueprint e transforme-os em uma matriz Se você clicar aqui,
poderá transformá-lo em uma matriz. Agora vamos chamá-lo de
Found Sessions. E vamos conectar
isso aqui. Agora, sempre que ele for atualizado, encontraremos
os resultados da sessão os
armazenaremos em uma matriz E então vamos
conectá-los a essa função, cujo objetivo é
filtrar ou o que quer que
estejamos filtrando O que quer
que lhe digamos para filtrar, ele fará isso. Agora que terminamos aqui, vamos entrar nesta. Agora, o que podemos fazer é
pegar isso e conectá-lo aos
resultados da sessão, sem mais nem menos. Agora, em vez de fazer isso, eu realmente percebi que
podemos criar um pino a menos porque podemos simplesmente pegar este e conectá-lo e eu
posso realmente excluir isso
daqui e compilar porque aqui
nas sessões finas, não
precisamos realmente
dele para conectá-lo aqui Clique em tudo e clique aqui. Na verdade, não precisamos
de uma entrada porque a estamos usando como uma
variável separada aqui. Nós realmente não precisamos de uma
entrada aqui para conectá-la. Então, podemos ter uma entrada a
menos porque podemos simplesmente usar essa variável que
é mais bonita. Agora precisamos adicionar alguns filtros para que ele não nos
dê esse erro. Podemos filtrar
na próxima lição. Por enquanto, vamos
pular a filtragem. Mas o que podemos fazer é
simplesmente reconectar esse código, seja o que for que filtrarmos Novamente, tente ver se o
comprimento está acima de zero. Se o de não estiver acima de zero, precisamos mostrar que nenhum servidor foi encontrado
durante a filtragem E vamos fazer com
que pareça melhor aqui. Por aqui, novamente,
podemos simplesmente conectar resultado
desta sessão
e excluir este aqui. Agora, este deve funcionar
bem, assim como antes. Se compilarmos agora,
você pode ver que recebemos um erro porque
não adicionamos nenhum filtro Em vez de fazer
mais nada nesta lição, vamos passar para a próxima
lição e adicionar um filtro aqui.
36. 4.07 Filtragem para linguagem de servidor: Tudo bem, então foi
aqui que paramos. Vamos ver o gráfico da van agora. E agora temos que filtrar
pelo idioma Sera. Se você clicar aqui,
desça até o final e selecione este na
seleção alterada, agora o item selecionado
é o idioma. Então, vou clicar com o botão
direito do mouse aqui, promover isso para uma variável e chamar isso de linguagem de
servidor. Esse é o idioma do servidor que
queremos filtrar. Você pode chamar a variável do que quiser,
isso realmente não importa. Agora, filtrando para isso, vou adicionar a
função que criamos aqui Então, adicionando essa função, vamos definir
isso em uma variável. E então não vamos
realmente atualizar os servidores, mas vamos filtrar
os servidores dentro daqui O que podemos fazer é afastar tudo isso para que
tenhamos algum espaço. Vamos arrastar a partir daqui e dizer que estamos criando uma
matriz exatamente como antes. Vamos fazer com que
você tenha essa propriedade
chamada de pesquisa de sessão literal Agora, novamente, arraste a partir daqui
e diga make novamente. E queremos filtrar uma string. Como temos uma
string, temos uma linguagem de servidor, faça isso. Agora você precisa adicionar a
chave que você adicionou antes. Se você não se lembra do
que fez, sempre pode voltar
às plantas Abra a instância do jogo. Dentro daqui,
filtramos o idioma do servidor. Você pode sair e
copiar essa chave. Você pode voltar ao navegador
do servidor. Essa chave está aqui embaixo? Agora, tentando encontrar linguagens de
servidor que
se encaixem no que você está
tentando filtrar. Agora você pode arrastar isso para aqui. Por exemplo, se
este estiver dizendo chinês, ele procurará
todos os servidores que tinham o idioma chinês quando foram criados. É assim que
isso vai funcionar. Se eu compilar agora,
não teremos mais erros. Agora podemos tornar isso
um pouco melhor, porque se eu for até o designer
do navegador do servidor, você verá que temos
o idioma inglês. No entanto, quando
mostramos todos os servidores,
não queremos isso porque quero
ver todos os servidores, inglês, alemão, chinês
e francês, de uma só vez. Eu não quero ver
apenas inglês. Vamos clicar em mais Resposta ou escrever tudo aqui no índice. Vou simplesmente colocá-lo acima de todos eles. Está aqui em cima. A opção de seleção, na verdade,
vou defini-la para tudo. Em vez disso, vá em frente
e compile e ele deve dizer tudo Agora, por padrão, agora para todos
os idiomas, não
é realmente um idioma Não queremos filtrar nada se o jogador
tiver configurado para tudo. Porque queremos
mostrar tudo. Se você tentar imaginar como você
pode realmente fazer isso. Em situações como essa, é melhor usar um nó de seleção se quisermos filtrar ou não. Dependendo se esse é esse valor ou aquele valor sendo
arrastado dos filtros, vou
pesquisar o nó de seleção Mais uma vez,
vamos selecionar dependendo se esse
filtro para servir uma string de idioma é
igual a todos ou não. Vou arrastar, se você
escrever três strings iguais,
isso é igual, exatamente, a string é exatamente
igual a todas Podemos arrastá-lo até aqui. Agora, o que estamos dizendo é que, se a string aqui for exatamente
igual ao valor, se isso for verdade, não
queremos filtrar. Isso vai ficar vazio. No entanto, se for falso, o que significa que realmente
selecionamos um idioma, queremos conectar
isso ao falso. Agora estamos filtrando por um idioma porque
selecionamos um Deixe-me fazer isso aqui desse jeito, e tudo vai ficar bem. Agora, antes de experimentarmos o jogo, vamos clicar no filtro
para exibir um idioma. E lembre-se de que temos que definir
isso por padrão para todos. Você precisa selecionar essa variável e escrever tudo por padrão, porque é
isso que é por padrão. Agora vamos clicar em Play. Aqui no meu segundo monitor, vou criar um
servidor, apenas um aleatório. E vamos chamá-lo, ou
vamos selecionar chinês, por exemplo, e
criar o servidor. Agora, aqui
no servidor conjunto, vamos tentar esperar
pelo servidor e ver
se podemos encontrá-lo. E quando a
encontrarmos, vamos ver se a filtragem agora está funcionando Agora encontramos o servidor e
ele é chinês. Eu posso ver isso. Se eu mudar para inglês, diz
que nenhum servidor foi encontrado. Mas agora temos um bug porque precisamos realmente removê-lo. Limpe as crianças, esquecemos
de limpar as crianças. Mas você pode ver quando eu seleciono tudo o que consigo ver
no servidor chinês. Eu seleciono chinês,
também posso ver , está realmente funcionando. No entanto, precisamos liberar as crianças também.
Dentro daqui. Se eu pegar a lista de servidores, posso dizer que limpe os filhos, removemos os antigos ou
adicionamos os novos desta forma. Agora, deve funcionar muito bem. Vou seguir em frente
até encontrar o servidor. Tudo bem, aqui
estamos mais uma vez. E eu me atualizei e
encontrei meu servidor mais uma vez. Se eu mudar o
idioma para alemão, não
vejo nenhum servidor encontrado. Eu mudo para inglês.
Não há nada aqui. Mudei para chinês, posso ver meu servidor,
mudei para francês. Não consigo alterá-lo para
tudo o que consigo ver no meu servidor. Mais uma vez, a filtragem do idioma está funcionando
perfeitamente. Agora, podemos fechar isso. Agora, antes de terminar esta lição, vamos adicionar um ouro
para não estragar o jogo,
porque
agora você pode mostrar filtrar aqui usando os resultados
desta sessão Mesmo porque,
tecnicamente, você pode simplesmente clicar em Joint
Sera e começar a filtrar logo antes realmente encontrar ou terminar atualizar os servidores, o que incomodará seu
jogo Para evitar isso, podemos fazer
isso por meio de uma variável simples. Se você clicar
no sinal positivo aqui. Se você chamar essa variável, vamos chamá-la de
atualização da lista de servidores Vamos arrastar a partir daqui. Vamos
arrastar esse puxão para dentro. E se arrastarmos,
puxarmos e selecionarmos
este, puxe para dentro. Agora, o que estamos dizendo é que não
estamos atualizando
a lista de servidores Faça um galho, depois vá
em frente e faça a filtragem. No entanto, se estamos
realmente filtrando, não
queremos fazer
nada,
caso contrário , vamos estragar
o jogo Esta é uma lista de serviços refrescante. Temos que defini-lo como
verdadeiro sempre que estivermos filtrando ou encontrando sessões
na sessão final Sempre que começarmos a
encontrar a sessão, vou arrastar isso
e defini-lo como verdadeiro. Estamos renovando o Servist aqui sempre que
terminamos A atualização,
quero arrastá-la logo antes
de filtrarmos aqui Eu quero dizer que isso
é refrescante. Servist agora é falso porque não estamos mais
atualizando. Então, agora ele vai
entrar aqui e vai
fazer seu trabalho. Se compilarmos o jogo e eu entrar, eu tento fazer isso,
você vê que não está bugando porque ainda está
atualizando E ele fará
essa filtragem
automaticamente porque,
quando terminar, ele filtrará e lerá
automaticamente
esse filtro para fornecer um valor de idioma que talvez
esteja definido como
chinês naquele momento E então tudo
vai funcionar muito bem. Ok, foi isso por enquanto. Vamos passar para
a próxima lição.
37. 4.08 Filtragem para servidores LAN apenas: Agora vamos filtrar
os servidores de linha. Se eu voltar e pegar essa caixa de seleção e chamar essa verificação, por exemplo, você pode dar a ela o
prefixo que quiser Vamos chamar isso de servidores de
linha única e compilar, configurá-lo como variável Agora vamos voltar ao
gráfico e aqui para a caixa, vamos clicar neste
evento sobre mudança de estado, temos um touro
aqui marcado. Podemos ver se a caixa de seleção
está marcada ou não. Vamos clicar nesse. Promova isso para uma variável. Vamos chamar isso Only Land Servers. Está bem? Se estiver marcado , queremos
mostrar apenas os servidores terrestres. Se não for verificado,
somente os servidores terrestres são falsos. Ok, vamos ver
o que podemos fazer com este. Agora, em sessões definidas, temos esse plug-in aqui ou essa entrada onde podemos
adicionar servidores terrestres. No entanto, para encontrar sessões, eu realmente quero encontrar
todas as sessões e , quando encontro
todas as sessões,
quero filtrar os
servidores terrestres a partir delas. Em vez de adicioná-lo aqui, vamos adicioná-lo ao nosso filtro. Vamos ver a
função
show session results que
criamos aqui. Aqui
na filtragem agora já estamos filtrando
pelo idioma do servidor O que podemos fazer agora,
assim como antes, criar uma nova entrada aqui, romper com ela e
pesquisar novamente a propriedade make literal
session Pesquisar propriedade.
Deixe-me arrastar isso acima aqui, na verdade, para que eu não veja isso e eu possa arrastar
tudo isso para baixo. Temos mais espaço.
Vou clicar neste, agora está mais limpo. Queremos fazer aqui de
novo, culatra, fazer. Agora você tem um valor de ouro porque agora você tem um ouro Vamos falar sobre o
bullying aqui. Agora vamos arrastar esses únicos
servidores terrestres para o ouro. Agora, para a chave,
nós realmente não adicionamos a chave porque
lembre-se de que essas chaves vêm da
instância do jogo aqui. Na verdade, não adicionamos uma chave para
usar servidores terrestres ou não. Vamos adicionar um. Vamos
clicar no sinal de mais. Vamos começar a partir daqui e dizer que faça uma sessão literal de ouro
imobiliário Já temos esse valor de
uso da terra. Podemos simplesmente arrastar isso até aqui e clicar duas vezes mais
uma vez para criar
um nó de rota traseira. Agora estamos usando este. Podemos chamá-lo do que
quisermos. Por exemplo, você pode chamá-lo de usar terra e sair e compilar.
Agora temos isso. Se o uso da terra for verdadeiro aqui, então este será verdadeiro. O que podemos fazer aqui, então podemos mudar essa chave
para usar a terra também. Agora vamos
dar uma olhada no que é
esse valor de uso da terra
quando estamos filtrando Se apenas os servidores terrestres forem verdadeiros, então só encontraremos servidores terrestres aqui. Agora, também queremos encontrar servidores
terrestres aqui nesta
entrada, porque agora realmente não
importa
se o
idioma do servidor de filtro é igual a
todos, se é falso ou não. Também queremos
pesquisar servidores terrestres
aqui. Porque lembre-se desse
nó de seleção que criamos porque queríamos ver se
o idioma do servidor estava definido como tudo ou não. Agora tínhamos essas duas entradas, mas para os servidores terrestres, não
nos importamos muito com o
idioma que você está procurando Este, em vez de ser
apenas inserido aqui, o que podemos fazer é arrastar e
dizer make array novamente. Também precisamos
conectá-lo aqui porque, se você não se lembra se o
idioma do servidor está definido como todos, estamos analisando todos os idiomas, então vamos errar quando tentarmos encontrar servidores terrestres
porque este estará vazio e
nada acontecerá. Temos que conectar isso aqui
embaixo também. Espero que não seja muito confuso. Tudo bem, agora, antes de
testarmos tudo, vamos voltar
ao gráfico de eventos. Lembremos também de
atualizar a filtragem quando definimos esse estado como verdadeiro e falso sempre que
marcarmos essa caixa Vamos garantir que também
atualizemos aqui. Use essa função. Agora vamos testar o jogo. Vou criar uma sera aqui. No meu segundo monitor, vou criar um sera E podemos simplesmente selecionar a terra, e eu vou
torná-la francesa e, em seguida, criar. Agora aqui, vamos entrar em um
servidor agora, vamos esperar por ele. O que ele deveria dizer agora
é que nenhum servidor foi encontrado porque, na verdade, é um servidor terrestre e
não é um servidor público. Agora você pode ver aqui que
diz que nenhum servidor foi encontrado, mas quando eu clico em
apenas servidores terrestres, ele deve encontrar o servidor
e faz isso aqui. No entanto, temos um bug
aqui embaixo sem nenhum servidor encontrado. Precisamos corrigir isso.
Mas, como você pode ver, quando eu adiciono e
removo, a filtragem do servidor do servidor está realmente funcionando com os servidores que
não encontrei este texto aqui Podemos simplesmente controlar C e controlar aqui embaixo, porque sempre que for exibido
pela primeira vez, sempre que não
encontrar nada, sempre que não
encontrar nada, não ficará oculto
sempre que for encontrado mais tarde. Porque nunca especificamos aqui que ele deveria
estar oculto por padrão. Então, vamos
conectá-lo aqui e configurá-lo como oculto sempre que
pesquisarmos novamente, e esse problema
deve ser corrigido. Agora também estamos filtrando os servidores de
linha. Vamos passar para
a próxima lição e verificar se
há servidores vazios.
38. 4.09 Escondendo servidores vazios: Certo. Bem vindo de volta. Agora vamos ocultar os servidores vazios. Para fazer isso, isso é muito simples. Agora podemos clicar em Ocultar
servidores vazios. Marque a caixa novamente. Vamos renomeá-lo para Check. Vamos chamá-lo de Hide
Empty Servers. Agora vamos torná-lo uma
variável com este. Vamos descer até o final mais
uma vez e clicar em verificar. Mudou aqui. Vamos clicar com o botão direito do mouse e
promover isso para uma variável e chamá-la de
Ocultar servidores vazios. Agora, esta enquete sobre o que
precisamos fazer é acessar a macro de sessões
finas Temos este dizendo apenas servidores
não vazios. Então, podemos arrastar isso até aqui, ocultar servidores vazios
e conectá-los. Sempre que temos um servidor
vazio oculto verdadeiro, isso significa que não queremos
ver servidores vazios, então este deve ser verdadeiro, somente servidores
não vazios. Na verdade, é isso. Então, o que podemos fazer agora é ir até aqui, clicar nessa macro
e, em seguida, temos que atualizar
as sessões novamente. Porque temos que
encontrar sessões novamente onde não haja apenas servidores
vazios. Isso deve funcionar muito bem. Agora podemos compilar e
passar para a próxima lição.
39. 4.10 Filtragem para nome de servidor: Tudo bem, então a
última coisa aqui é que
queremos filtrar o nome
do servo também Então, clicando nessa caixa, vamos renomeá-la para Nome do servidor
de entrada Agora, eu já fiz isso e
configurei como variável. Agora, o que podemos fazer
aqui no gráfico, vamos clicar nele e clicar
em Alteração de texto, para
obtermos esse evento. Agora, para este texto,
vamos defini-lo como string,
então defina-o como uma string
, clique com o botão direito do mouse e
promova-o como uma variável. E vamos chamar esse
filtro para o nome do servidor. Nossa filtragem para esse
servoname que escrevemos aqui. Novamente, lembre-se de executar essa função porque
precisamos executar o filtro sempre que alterarmos
esse valor, abri-lo. Agora, para o servoname, você pode ficar tentado
a adicioná-lo Mas o problema com
essa aqui embaixo é que você pode ver que ela tenta
comparar essa string, por exemplo, para que a
linguagem de serviço seja igual a. Então, essa linguagem de serviço aqui, sempre que for igual a
algo, ela será filtrada. Para o nome do servo, por exemplo, se o jogador aqui
e o nome do servo apenas H E. Em vez
de escrever hello, por exemplo, o jogador escreve H E. Ele ainda deve
encontrar o Mas não seria
porque está
tentando ver se a string que você está procurando é igual
ao nome do servidor, e não seria o caso. Então, tudo isso é que não
podemos realmente usar tudo isso aqui igual a não igual a
maior que e assim por diante,
então não podemos usar essa
parte Então, em vez disso, podemos
realmente ir até aqui
e, em vez disso, vamos fazer isso
aqui. Então, agora o que podemos fazer é usar esse filtro para servir o nome. Agora, antes de repetirmos aqui, vamos verificar se esse filtro para
servir o nome está vazio ou não. Então, verifique se o jogador
realmente escreveu alguma coisa. Então, arrastando a partir
daqui e procurando por vazio e selecionando
esta função Então, esse filtro é
para servanam string? Está vazio? E eu posso
simplesmente fazer um galho aqui. Se estiver vazio, isso significa que o jogador não escreveu nada. E quando o jogador
não escreve nada, podemos seguir em frente e repetir fizemos antes,
para que nada mude. No entanto, se o jogador agora
digitar algo na caixa, temos que fazer
algo aqui embaixo. Agora, não realmente aqui embaixo
, mas aqui nas cataratas. Então, com isso, podemos simplesmente copiar e
colar esse código aqui, e agora podemos conectá-lo. Antes de adicionarmos todos os
servidores à lista aqui, podemos simplesmente arrastar isso para longe. E podemos arrastar isso e
dizer, obter configurações extras. Agora, essa função aqui,
na verdade, vamos usá-la no código do
servidor eta. Então, este, vamos nos
conectar por enquanto. Então, obtendo as configurações extras, novamente, as configurações extras. Lembre-se de que são
da instância do jogo. Você pode ver aqui, nós
chamamos isso de configurações extras. Então, estamos recebendo o
servame daqui. Isso é o que estamos tentando fazer. Estamos recebendo esse valor
que foi bloqueado aqui. Então, indo para o navegador do servidor, mais
uma vez, a partir das
configurações G, obtenha configurações extras. Podemos novamente arrastar e dizer,
Get, e agora queremos obter uma string porque queremos
obter o servaname Então, agora aqui, vamos
pesquisar o nome do servidor. Lembre-se, essa chave é a
chave que você escreveu aqui, e eu a escrevi e chamei
servam para que você possa
copiá-la aqui, e agora temos
esse nome de servo Então, o que podemos fazer com isso? Podemos tentar compará-lo. E a coisa boa
sobre uma string, é por
isso que aqui
no gráfico de eventos, eu a transformei em uma string. É por isso que eu
não a transformei em uma variável de texto,
porque é uma string, você pode modificá-la
de várias maneiras. Então, se você apenas
pesquisar por string, porque você tem todas
essas funções, você pode usar para realmente usar
algo com a string. E o que eu quero usar
é o chamado Contém. Se você for até aqui, terá
este chamado Contém. Se você clicar nele, agora você está
pesquisando nesta string. E enquanto você está
pesquisando na string, você está tentando ver
se ela contém algumas das letras que
o jogador escreveu aqui do filtro para servanam se for esse o caso,
então vamos fazer uma ramificação aqui e conectá-la aqui no encontrado E vamos
conectar essa parte aqui embaixo. Agora, ele está tentando
descobrir se consegue encontrar um servidor que contenha esse nome de servidor que
o jogador escreveu
e, se puder ser encontrado, vamos
adicioná-lo à lista. Se não puder ser encontrado, não
faremos nada. Então, isso deve bastar. Agora,
vamos clicar duas vezes neste e criar
um nó de rota traseiro e
fazer com que pareça melhor. Agora, vamos ver
se funciona. Então, vou
clicar em jogar agora. E agora vou
criar um servidor aqui na minha segunda tela,
clicar em criar sera Agora vou chamar
isso de algo real aqui. Vou
chamá-lo de algo como melhor
servidor
chinês de todos os tempos
e, em seguida, selecionar Mirage e, em
seguida, configurá-lo para chinês e definir os slots
para algo como 16, torná-lo público
e criar o servidor Ok, agora aqui,
vamos tentar juntar o serva
e sempre que o encontrarmos, vamos tentar ver se todos os
filtros funcionam Então, especificamente, esse ótimo serva porque testamos
os outros. Então, agora vamos tentar
filtrar pelo nome. Agora, quanto ao nome, não
podemos realmente vê-lo aqui porque
não criamos o cartão
serva aqui, então ainda não o
personalizamos, mas o chamamos apenas de chinês Então, eu apenas procuro por chinês,
que deve encontrá-lo. No entanto, se eu
adicionar algo extra, para que não seja mais chinês, você pode ver que ele não
o encontra mais. Se eu o excluir,
recuperamos o servidor e o tornamos o melhor de todos os tempos.
Foi assim que eu o chamei. Então, se eu apenas
pesquisar o melhor de todos os tempos, ele ainda vai aparecer. No entanto, se eu escrever
algo, por exemplo ,
como o melhor, e talvez
algo como K aqui, não
vai aparecer. Portanto, a filtragem do servidor aqui e da barra de
pesquisa está funcionando No entanto, ainda
precisamos codificá-lo, que ele realmente nos mostre
as informações corretas. Agora, esse está
funcionando. Tudo bem. Agora que isso terminou, vamos passar para a placa
do servidor e codificar essas informações.
40. 4.11 Como obter as configurações extras para o cartão de servidor: OK. Tudo bem Agora, vamos
começar aqui. Então, vamos ao menu principal da
interface do usuário novamente. E desta vez, vamos
trabalhar aqui dentro
do Servo Cd Então, vamos abri-lo e
clicar no primeiro texto. Agora, vamos mudar todos
eles agora que somos isso. Então, o primeiro, vou chamar o texto
de Servanam. No próximo, podemos prosseguir
e chamar o mapa do jogo de texto. O terceiro, podemos chamar texto a quantidade de slots
ou a quantidade de jogadores. Você também pode chamá-los de jogadores. Eu acho que é melhor. E
o último que podemos chamar de texto Este, a bandeira
aqui, o ícone, vou
chamá-lo apenas de linguagem de imagem. E clicando em todos eles, podemos selecionar todos eles e
configurá-los como variáveis iss, para que
possamos codificá-los posteriormente. Agora, para esta lição, obteremos as configurações extras. E lembre-se de que
as configurações extras são aquelas que criamos dentro
da instância do jogo. Então, estamos recebendo todas
essas informações agora. Vamos entrar
aqui. Deixe-me excluir tudo isso na placa
do servidor. Deixe-me criar uma nova função
chamada get Extra settings. Ok, então dentro daqui, o que queremos fazer
é fazer essa sessão encontrada que tivemos. Lembre-se de que inserimos
essas informações aqui quando
encontramos os resultados da sessão E podemos arrastar a partir daqui
e dizer: obtenha configurações extras. Então, novamente, é isso que
estamos fazendo, se eu voltar e lembrá-lo
aqui no navegador servo Lembre-se, isso é o que fizemos. No navegador servo,
obtivemos as configurações extras e
a string de propriedades Então, isso é basicamente a
mesma coisa que estamos fazendo aqui. Então, obtendo as configurações extras, arraste a partir daqui e diga, pegue. Agora, estamos obtendo
a string da propriedade. O primeiro que
obteremos é o nome do servidor. Então, se você apenas escrever
o nome do servidor e, a propósito, a chave novamente é
da instância do jogo. Então, o que quer que você tenha escrito aqui como chave para o nome do servidor, você tem que usá-lo aqui,
caso contrário, não vai funcionar. Vou arrastar aqui
e criar um nó de retorno, e com esse nó de retorno, posso arrastar
essas informações até aqui, que elas se tornem uma variável para mim, e eu possa usá-las mais tarde. E essa variável eu
vou chamar de Servam. Então, agora temos o nome do
servidor. E vamos arrastar a partir
daqui novamente e dizer, agora vou
pegar outra corda. Vá em frente e conecte-o aqui. O próximo que eu quero obter Vamos primeiro obter o
idioma do servidor. Então, vou pegar a linguagem
do servidor e vamos conectá-la. Agora, a próxima coisa,
novamente, a partir daqui, pegue a string de propriedade,
mais uma vez, vá em frente e conecte-a. Agora, este será
o mapa SerVA porque
eu também preciso Vá em frente e escreva isso aqui. Conectado. Agora, nós
realmente não precisamos de mais, porque agora temos o I
back to the designer. Agora temos o idioma, o nome do servo e
o mapa E esses dois podemos fazer sem obter nenhuma
informação daqui. Então você pode simplesmente arrastar
isso e bloqueá-los. Então, a primeira é
a linguagem Serva. Então, vamos chamá-la de linguagem de serviço. E o outro é o mapa do servidor ou o mapa do jogo, como
você quiser chamá-lo. E, novamente, você pode clicar
duas vezes neles para
fazer anotações de redirecionamento. Tudo bem E foi isso. Então, agora criamos as configurações extras. E mais tarde, aqui
no gráfico de eventos, podemos arrastá-lo e
usar todas essas informações para definir
as informações dos servidores.
41. 4.12 Atualizando as informações do cartão de servidor: Agora vamos começar a
atualizar as informações da
placa do servidor. Vamos clicar com o botão direito do mouse
e eu vou
fazer uma construção de evento, mais
uma vez, com esse evento. Lembre-se aqui no navegador
do servidor, sempre que encontrarmos sessões, criamos essa placa de servidor, sempre que criamos
a placa de servidor, essa construção de evento será
reproduzida imediatamente quando adicionarmos ou sempre que
criarmos essa placa de servidor, vamos atualizá-la com as informações de
que precisamos. E vamos arrastar isso, obter configurações extras que
criamos e conectá-las. Agora vamos começar
do começo. A primeira coisa que
queremos editar é o idioma. Essa, eu vou arrastá-la
para dentro. O que queremos
fazer é colocar o pincel. Você tem esse conjunto de
pincéis da Texture. Agora precisamos dos ícones para eles, e eu lhes dei os
materiais de custo. Se você ainda não os
importou, basta acessar seu material
na pasta de ícones e arrastá-los para uma pasta de ícones aqui e
aqui, conforme você pode vê-los. A propósito, se você quiser
melhorar a aparência da interface do usuário, sempre
poderá
clicar novamente em cada uma delas. Defina o grupo de texturas para
as configurações de compressão interface
do usuário dois D. Isso é o que deve
ser para sua interface do usuário. Agora vamos fechá-lo
e temos a bandeira. Vamos voltar ao sera cod. Dentro daqui, você deve configurá-lo
para a bandeira dependendo do idioma da sera Agora, o que vou
fazer é mostrar
a vocês um
método inteligente para fazer isso. Se sua variável de crédito, você chama isso de idiomas de servidor. Agora, para este, vou
transformá-lo em uma string. Agora vamos mudar
isso em vez de uma matriz. Até agora, usamos uma única variável e
uma variável de matriz. Isso, eu vou fazer um mapa. Variável. Um mapa do que é. Ele consiste em duas variáveis
, como você pode ver aqui. O primeiro é string porque é isso que
você selecionou. Segundo, vou apenas pesquisar por
textura e selecionar
essa chamada textura essa chamada textura dois D. E vá em frente e
selecione uma referência de objeto. Uma textura dois D é
simplesmente uma imagem aqui. O que isso está fazendo agora, se você compilar, você pode
ver aqui embaixo Se eu clicar no sinal de mais, agora você pode ver essas duas variáveis, a string e a textura. Agora, a corda, podemos
fazer o que quisermos. Por exemplo, posso
dizer que, em inglês, quero a bandeira inglesa. Podemos pegar essa
bandeira americana e afixá-la. Agora vamos clicar no sinal
de mais novamente. E digamos que, para a língua
alemã, eu quero a bandeira alemã. Vá em frente e conecte-o também. Porque a vantagem, mais uma vez
, digamos, no idioma chinês, é que
eu quero a
bandeira chinesa como a final. Para o francês, para a língua francesa,
eu quero a bandeira francesa. Antes de fazer qualquer coisa,
novamente, devo lembrar que você definiu essa escala de interface do usuário
para 1,25. Você pode realmente ver que isso é o que eu
fiz até agora criando este mapa E podemos atribuir uma
textura às cordas. Agora, um
método muito inteligente que podemos fazer é arrastar esse
mapa até aqui. E podemos arrastar, se você não sabe o que
pode fazer com um mapa, você sempre pode ir para Utilitários. Clique em Mapa e essas são as funções que você
pode usar com um mapa. Você pode adicionar um valor,
limpar o mapa, limpar todos os valores. Você pode ver se ele contém
algo específico. Você pode encontrar algo específico, verificar o
comprimento e assim por diante. Mas o que queremos fazer é
encontrar algo. Queremos encontrar o idioma
do soro em que o serva,
por exemplo, escolheu por exemplo, escolheu Vamos encontrar isso
dentro deste mapa. Sempre que a
encontrarmos, encontraremos a textura, procuraremos o chinês. E então vamos
pegar o ícone da bandeira para isso. Este ícone de bandeira, vamos
conectá-lo aqui. E então conecte isso aqui. Encontramos o ícone da bandeira. Vamos mudar o idioma
da imagem para
a bandeira correspondente. Agora isso está feito. Agora
vamos continuar. Esse é o servoame. Vamos pegar esse servoame. Diga aqui, defina o texto. Isso é simplesmente o que
estamos tentando fazer. Estamos tentando definir o
texto para o nome do servo. O texto que queremos definir é
o servoame aqui. Vou apenas arrastá-lo e
soltá-lo e ele
converterá minha variável de string
em uma variável de texto para mim. Agora isso está correto,
vamos continuar. A próxima coisa é o mapa do
jogo, voltando, arrastando-o aqui
dizendo set e eu
vou definir o
texto para Adicionar e conectá-lo novamente ao servidor Opa, esse é o nome Servo. Na verdade, preciso fazer
o oposto desta aqui, para que eu não cometa um erro. O Servo Map está, na verdade,
aqui. Vamos conectar isso. Agora isso também está feito. Agora, para a quantidade de jogadores, vamos voltar agora, a quantidade de jogadores, vá
em frente e defina o texto novamente. Agora, quando você tem
dois valores dinâmicos, você pode ver que precisamos da quantidade de
jogadores no servidor, mas também precisamos do máximo de jogadores que
podem estar dentro de um servidor. Quando temos dois valores dinâmicos como esse e
temos apenas um bloco de texto, precisamos usar algo chamado formato de texto que eu arrasto
daqui e digo Formatos selecione este, formatar texto. Agora, o que
podemos fazer aqui é começar com um colchete Então, podemos escrever, por
exemplo, a quantidade de jogadores. Então você deve se
lembrar de fechar o suporte encaracolado
e pressionar Ao fazer isso, você pode ver
que recebe uma entrada para isso. Agora deixe-me escrever uma barra porque eu tenho essa barra aqui Então eu tenho que obter a quantidade máxima de
slots. Quantidade de vagas. Vou voltar aqui
depois da barra,
abrir o colchete
e escrever a quantidade Então, podemos fechar
o colchete mais
uma vez quando pressionamos Inter, obtemos a segunda Você pode ver agora que
obtemos entradas para variáveis. A forma como obtemos a quantidade de
jogadores e a quantidade de slots é se pudermos fazer esta sessão e você pode simplesmente
pesquisar o jogador, você pode ver aqui,
obter os jogadores atuais. Você pode arrastar novamente os jogadores para obter os jogadores atuais,
conecte-o aqui. E consiga jogadores. Máximo de jogadores. Sim, conecte-o à quantidade de slots e vá em frente
e conecte-o. Compile tudo e
vamos continuar agora. A última coisa é o ping. Clicando nele novamente, arraste-o, defina o texto, vá em frente
e defina o texto. Agora, para o ping,
também podemos obter isso daqui. Se você puder arrastar ou copiar, cole e
pesquise ping ping em MS. E vá em frente e conecte esse
valor aqui. Agora, em vez de apenas
conectá-lo, você pode ver aqui
que eu tenho o valor e tenho MS no final. Novamente, você precisa
usar um formato de texto. Então, vou
arrastar e dizer formatar texto e selecionar. Agora abra um colchete
dizendo Ping, por exemplo. Você pode fechar o
colchete e depois vou
escrever MS no final porque quero o texto
MS no Vou apertar
Enter. E agora você pode inserir o valor do ping. No momento, isso deve resolver tudo o que
dissemos, tudo. vamos ver se
tudo está funcionando. Agora, se eu clicar em Jogar mais uma
vez e criar um servidor, vamos criar um chamado, por exemplo, Fun sera Por favor, participe. Vamos
configurá-lo para Mirage, configurá-lo para alemão e configurá-lo para 32 slots públicos E eu vou clicar em Criar. Vou entrar no servidor e ver se consigo encontrar
o servidor aqui. Agora você pode ver que
criamos o servidor. O ping também é exibido, o mapa e diz em
Sera, por favor, participe E também tem a bandeira
alemã, e tudo está funcionando
como deveria. A última coisa que precisamos fazer é quando você clica
nesse botão, precisamos entrar na sessão. Vamos fazer isso
na próxima lição.
42. 4.13 Ingressando na sessão: Estamos de volta aqui
no código do servidor e a última coisa que precisamos
fazer é entrar na sessão. Se eu voltar para o designer
e clicar no botão, é nesse botão
aqui que clicamos. Vou mudar o
nome para Join server,
por exemplo, ou compilar
sessão conjunta E agora vamos até aqui. Clique nos eventos ao clicar. Agora, quando clicamos no botão, queremos usar esse chamado
Sessão. Escolha este, o controlador do player mais
uma vez pega controlador
do player
e use-o aqui. Agora, para a sessão em que
queremos participar, é simplesmente essa
sessão encontrada que temos. E isso deve ser bom. Agora podemos salvar tudo. E foi isso para
este. E vamos seguir em frente.
43. 4.14 Navegador de servidor Back Button: Agora estamos quase terminando. Vamos codificar o
botão Voltar aqui. Clique nele. Vou mudar
o nome dele para botão Voltar e
configurá-lo como sua variável. Desça, defina o clique aqui. Vamos voltar para, por exemplo, já
fizemos isso antes. Vamos abrir o menu principal. Vamos pegar
o menu principal aqui,
copiar e colar esse código
que criamos. Volte para a
placa do servidor, ou para a placa do
servidor, para o navegador do servidor e
cole-o aqui. Vá em frente
e conecte-o. Agora não temos a variável do controlador
do player. Vamos apenas adicioná-lo
aqui na
construção do evento antes de
procurarmos servidores. Estou de novo, podemos
simplesmente copiar e colar. Na verdade, se
voltarmos ao menu principal, podemos copiar e colar esse
código que criamos. Cole aqui. E
isso deve ser corrigido. Vá em frente e conecte isso aqui. Conecte isso aqui. Clique com o botão direito do mouse quando você vê que está cinza. Isso ocorre porque ainda não
criamos a variável. Vamos clicar com o botão direito do mouse e
criar essa variável. Agora ele foi criado e
deve funcionar aqui também. Agora, quando clicamos
no botão Voltar, queremos ocultar
o navegador Servo E queremos mostrar o menu
principal e compilar. Agora, se desejar, você também
pode criar uma
animação para isso. Assim como fizemos
com o Create Serva. Uma maneira rápida de fazer isso é que
podemos fazer isso rapidamente juntos. Na verdade, se você
clicar nessa caixa vertical, vamos fazer isso
nessa caixa vertical. Vou
chamá-lo de navegador Sera aqui na animação.
Clique na chamada positiva, clique nela e crie uma nova
faixa para o navegador Sera Lembre-se de que você
precisa selecioná-lo. Vá em frente e clique no sinal de mais. Clique no sinal de adição novamente,
aqui embaixo, selecione a transformação. Agora, o que podemos
fazer é copiar e colar o antigo. Se eu for para criar sera, eu a abro aqui
na guia de animação Vou apenas
copiar essa transformação. Vou selecionar
isso assim aqui, controle C. Se eu for
para o navegador Sera, posso simplesmente clicar aqui, controlar V. Agora
diz que não é possível colar Vou tentar fazer isso de novo. Posso simplesmente copiar essa tradução e
ver se consigo colá-la. Controle aqui, controle V aqui. E isso funcionou, eu só tive
que copiar daqui em vez disso. Agora que funcionou, você
pode ver se eu faço isso, ele já fez a animação. Você pode copiar e colar animações. E é muito mais fácil
para você também. Se eu for ver o gráfico aqui, antes de fazer a sessão fina, posso simplesmente reproduzir a animação. Agora, aqui para a animação, vamos arrastá-la para dentro e,
digamos, reproduzir a animação. E faça isso, queremos que ele olhe
para frente uma vez. Isso é bom para a velocidade. Novamente, vou configurá-lo para
1.1 para que seja um pouco
mais rápido do que o normal Agora, se você clicar
no botão Voltar. No entanto, assim como antes, quero acabar com isso, interromper a animação mais
uma vez e dizer Reproduzir animação e
conectá-la. Agora vamos jogar novamente
, 1,1 velocidade. No entanto, desta vez
vamos jogar ao contrário. Podemos quebrar isso
mais uma vez e dizer “ganhe tempo”. Então, podemos adicionar um atraso
como antes. É o mesmo que
fizemos com o Crete Sera. Então, adicionando um atraso e, em seguida,
vamos conectá-lo agora. Após o atraso, queremos
mudar essa tela dessa
forma, é claro. Você também pode adicionar
a animação ao menu principal, mas você entendeu. Vamos tentar clicar em Jogar. Junte-se à Serva, e isso
é o que parece. Cinco cliques em Voltar. Isso
é o que parece. Ok, também temos animações
para isso. Está ótimo.
Vamos passar
para a próxima lição e ver
se temos algum problema ou dinheiro com o sistema que
criamos por enquanto Vamos passar para
a próxima lição.
44. 4.15 Testando o resultado final: Aqui estamos de volta
na esperançosamente final. Vamos
testar o jogo. Agora eu quero que você configure
para um número de jogadores,
dois, e depois jogue
como um servidor de escuta. Vamos tentar reproduzi-lo dentro
dessa janela antes empacotá-lo e
testá-lo em outro computador. Então vá em frente e crie um servidor. Vou apenas criar um
servidor com essa tela pequena. Basta criar um servidor aleatório. Agora vou tentar
entrar nesse servidor. Agora ele vai ser atualizado. Vamos também testar tudo
isso aqui. Quando o servidor estiver ativo. Agora, como você pode ver,
o servidor é um bug. Porque agora, quando
clico aqui, você pode ver que ele não pode
entrar na sessão. Também posso ver que a quantidade
de jogadores é zero. Há algo errado. Se eu fechar, acho que sei onde está
porque esqueci alguma coisa Porque quando você quiser
depurar algo assim, basicamente o que eu
procuraria é ver a interface do usuário aqui no servidor
Create Eu veria se ele cria
o servidor corretamente. Aqui você tem todas
as informações. Você tem o nome do servidor, a
quantidade de slots que temos, a quantidade de slots
configurada corretamente. Você terá que verificar se, sim, nós o configuramos. Quando alteramos o valor
aqui no servidor de criação, isso para o
jogador máximo, o público se conecta. O problema é que se você tivesse um bug aqui e as
conexões públicas fossem zero
, ninguém poderia entrar. Mas eu posso ver que já
definimos a quantidade de slots e tudo está funcionando
aqui, verificando a junção. Se clicarmos no saque, um código e onde
fizemos a sessão conjunta, tudo está correto, a sessão
conjunta está aqui. Você também pode verificar se essa
sessão é válida arrastando partir daqui e procurando por
válida. Eu já fiz isso. Eu verifiquei se isso era válido. A maneira de fazer isso
é simplesmente
imprimir uma mensagem na tela. Só aqui, no success connected,
conecte este aqui. Se você tentar jogar e
depois entrar no servidor, deve dizer que
é verdade que a sessão aqui é válida. Não há nada de errado
com a sessão, então algo mais está errado. Agora, demorei 5 minutos
para dar uma
olhada no que era, porque não
conseguia ver o que estava errado. Mas o fato é que esquecemos algo
aqui na planta Na verdade, já fizemos isso
antes, eu acho. Mas quando mudamos as coisas, esquecemos de escrevê-las Quando você cria o servidor
e escolhe o mapa aqui, ao abrir o nível, você precisa clicar nessa
seta para ver essa opção. E você realmente tem que ouvir, porque você tem que
ouvir isso, porque estamos criando
um servidor cliente. Então você precisa
ouvir isso antes que funcione. Agora, se eu clicar em Jogar novamente, crio um servidor aleatório
na minha segunda tela, seja o que for,
apenas um servidor aleatório. Vamos voltar aqui.
Criar. Vamos entrar um servidor. Agora vamos esperar por isso. Agora, ele deve ser exibido com
a quantidade correta de jogadores e também não devemos ter problemas em entrar
no servidor. Vamos esperar por isso. Aqui está. Agora eu posso ver a
quantidade de jogadores. Se eu clicar nele, ele
deverá entrar no servidor. E ele se junta ao servidor. Agora tudo está
funcionando corretamente. OK. Agora isso está
funcionando corretamente. O que vou fazer agora é abrir quatro jogadores. Se você tiver um computador lento, tome cuidado para travar ,
pois é muito difícil
abrir tantos servidores. E também vou definir a escalabilidade do
motor como baixa, para que eu possa realmente
operar muitos deles. Além disso, se
quiser otimizá-lo, você sempre pode acessar as configurações do
projeto, pesquisar por suavidade, você tem algo aqui
chamado taxa de quadros suave. E você pode marcar isso e selecionar qual deve ser o FPS
máximo Seu computador não funciona, no máximo, pode fazer isso. Na verdade, isso foi um
problema no Farm Tail. Quando eu o lancei, eu não
estava ciente disso. E funcionou a cerca de
600 FPS ou qualquer outra coisa e queima as GPUs da People Basta definir um máximo de
quadros por segundo. Não precisamos de
mais de 200 neste jogo. Vamos agora tentar abrir quatro
deles. Vamos clicar em Jogar. Agora eu tenho quatro deles. Vou criar servidores
aleatórios e
voltarei com você. Tudo bem, então agora eu
criei os servidores. Vou clicar
em Joint Server. E, a propósito, a
lista de atualização aqui ficará
muito mais rápida quando você a empacotar no Steam Então, isso está
demorando porque estamos
procurando nossos próprios jogos. Como você pode ver aqui,
criei alguns servidores. Na verdade, fiz três, mas
um deles é um servidor terrestre. Agora podemos verificar se
esses filtros estão funcionando aqui
no servidor de criação.
Vamos ver se funciona. Se eu procurar por brincadeiras, ele encontra o servidor Se eu tentar pesquisar
por deathmatch, se eu acabei de escrever deathmatch, você pode ver que ele já encontra
o servidor Agora, essa pesquisa é
muito inteligente porque pesquisa também dentro
das frases Por exemplo, se eu apenas
escrever server ou R, ele deve encontrar os dois porque ambos têm ER neles. Encontra os dois VR
aqui, os dois a têm. Se eu escrever algo errado, ele não os encontrará
aqui nos idiomas. Se eu pesquisar por inglês, ele só vai me
mostrar este. Alemão, esse chinês não
temos um. E em francês, não
temos um. Todos eles. Estamos de volta aqui agora, escondendo os servidores vazios. Ele atualizará a
lista mais uma vez
porque agora está tentando encontrar servidores
que não estejam vazios, o que é basicamente todos eles. Ele deve exibir todos eles mais
uma vez. Aqui estão elas. Agora, se eu mostrar apenas
os servidores terrestres, você pode ver meu servidor terrestre que eu também criei, com apenas dois jogadores aqui,
diz Join Land server aqui. Se eu removê-lo, posso
ver meus servidores públicos. Vamos em frente e nos
juntemos ao servidor terrestre. Se eu clicar neste, ele deve entrar no servidor. E ele me mostra esse menu
principal novamente, porque é apenas um
mapa falso que acabei de entrar. Não é meu mapa de contra-ataque, mas agora você pode ver
que tudo está funcionando. Vamos para a próxima
lição, na verdade, e empacotar este projeto para
que você possa realmente enviá-lo aos seus amigos ou adicioná-lo
ao Steam, se desejar. Por enquanto, salve tudo e vamos passar
para a próxima lição.
45. 4.16 Empacotando o projeto: Tudo bem, aqui
estamos de volta. Vou mudar
a escalabilidade para Epic mais uma vez. E agora estamos prontos para
empacotar o projeto. Agora você terá diferentes épocas,
dependendo do projeto que você usou, porque isso realmente
depende do seu projeto agora. Mas para empacotar seu projeto, vá em frente e você pode
fazer isso aqui. Mas antes de fazer isso, o que eu
gosto de fazer é ir até
a janela e mostrar
o log de saída. Agora, dentro do registro de saída, você poderá
ver todas as eras do seu jogo
antes de eu fazer isso. Agora, para este jogo,
algo que você pode consertar. Se você fez esse jogo de
contra-ataque novamente, você pode jogar este
jogo aqui no Game Instruct.com. É aqui
que eu lanço meus cursos E este é meu site pessoal. E você sempre pode encontrar
cursos lá dentro,
incluindo jogos de tiro, multijogador, dois jogos D
no Unreal e Mas, por enquanto, eu quero que você abra, se você já fez esse
projeto, basta abrir isso. Vamos até o player,
abrir a animação, abrir o
plano da animação aqui dentro Quero que você clique no estado
do movimento. Então eu quero, nas configurações
padrão, que você clique
no sinal de adição e
defina o estado padrão como em execução, o que é algo
que realmente perdemos. Então vá em frente e compile isso. Vamos fechá-lo agora para
empacotar o projeto. Vá em frente e vamos
primeiro salvar tudo. Vamos garantir novamente que você tenha seus bloqueios de saída abertos. Agora, vamos
clicar com o botão direito, limpar as fechaduras. Isso é o que eu
gostaria de fazer primeiro, certo? Limpe os registros. Em seguida, clique aqui,
vá para Windows and Package e, em seguida, Package Project. Agora você precisa selecionar onde
deseja empacotar o projeto. Agora eu já tenho uma pasta na minha área de trabalho chamada pacotes. Você pode simplesmente fazer isso aqui se quiser ir em frente e selecionar a pasta. Agora ele vai
empacotar o projeto. O que eu normalmente procuro aqui
no log de saída é Er, nossos erros e avisos Se você clicar aqui e remover mensagens como essa, poderá ver todos os
erros e avisos Só que agora não
temos nenhum. Na verdade, vou
clicar nas mensagens para ver o que está
fazendo aqui. Às vezes leva 1 minuto, às vezes leva 5 minutos. Você só precisa esperar
até que ele empacote o projeto. Novamente, isso depende do
projeto que você está usando. Porque alguns projetos
terão erros específicos
do projeto. Você terá que tentar
corrigir esses erros. Claro, você pode
escrever e eu posso
tentar ajudá-lo a
empacotar seu projeto. Agora, às vezes, você recebe
erros sempre que trabalha com bibliotecas, como
fiz neste projeto. Mas se você receber um
erro
aqui onde diz Estrutura
desconhecida, você terá que clicar em uma
das funções e depois clicar
em Arquivo, Atualizar todas as notas Então você tem que clicar
no segundo,
Arquivo, atualizar todas as notas Você precisará fazer
isso para todas
as funções que você tem se
tiver uma biblioteca de funções. Então, fique atento
a isso, certo? Como você pode ver
aqui agora, a construção foi bem-sucedida e
está concluída. E sempre posso remover
as mensagens para ver quais são meus avisos aqui É
algo relacionado à animação e, na verdade, não é
algo muito importante. Às vezes, esteja
ciente de que esses erros às vezes, se você apagá-los e tentar empacotá-los pela segunda vez, eles serão
corrigidos automaticamente. Então, esteja
ciente disso também. Tente empacotar pela segunda vez. Aqui estão algumas coisas de animação. Remover duplicatas realmente não
importa no momento. Isso não
é importante. Agora eu empacotei
meu projeto e
posso ver meu projeto
aqui nos pacotes Agora, dentro daqui,
eu quero que você selecione todos os
arquivos, clique com o botão direito do mouse. Vá para o Winrar, por exemplo. Adicione-o a um arquivo. Eu só quero saboreá-lo aqui. Faça dela uma pasta Sip. Eu só quero chamar esse,
por exemplo, de qualquer Counter Strike ou meu jogo, como você
quiser. Clique em OK e espere
que ele entre em uma pasta Sip. Agora, o que eu quero que você
faça é esse arquivo p, você pode entregá-lo aos seus amigos, agora você pode
enviá-lo para o Google Drive ou enviá-lo para uma USP.
Eu vou fazer isso. Vou extraí-lo
no meu segundo computador. Eu tenho todos esses arquivos
no meu segundo computador. Então eu vou
experimentar este jogo, jogando-o do meu laptop
com este PC também. Vou tentar fazer isso. Tudo bem, agora estou de volta. Eu o adicionei ao meu laptop
e criei um servidor. Então, o que eu quero que você
faça é clicar aqui, definir o número de
jogadores como um
e, em seguida, definir o
modo Net para jogar sozinho Isso porque agora
vamos usar o Steam para testar o jogo. Novamente, você precisa
ter o Steam aberto, então certifique-se de que o Steam esteja
ligado, certifique-se de estar bloqueado,
o número de jogadores é um. O modo de rede é autônomo. Então aqui em cima, vá
em frente e clique em Jogar. Como um jogo independente, você precisa fazer isso
para testá-lo no Steam, então certifique-se de
fazer isso agora Ele vai abrir aqui, vamos ver se ele encontra o
servidor no computador. Diz, olá, piadas. Este é o meu vapor. E vamos clicar
em Servidores conjuntos. Ele deve pesquisar muito
mais rápido do que antes. E você pode ver aqui, diz,
junte-se a mim, por favor, do laptop. E isso é do meu laptop. Agora, esse ping sendo 9.999, tem algo a ver com o firewall e outra
coisa também Vou escrever isso aqui
dentro do meu blog, no meu site, para
que
você sempre possa conferir se quiser uma
solução para isso também. Terei alguns problemas de depuração
que você pode resolver. E sim, você pode dar uma
olhada nisso sempre que quiser. Mas em vez de aqui, você pode ver que os jogadores têm oito.
Tudo está funcionando. Eu posso procurar o servidor. Se eu escrever algo
errado, ele desaparece. Se eu escrever, por exemplo, participar, eu posso ver isso. Eu escrevo, isso remove que a
pesquisa está funcionando. Agora posso pesquisar servidores
em inglês, servidores
alemães e outros idiomas. Ou volte para tudo o que posso mostrar apenas servidores terrestres
e eles desaparecerão porque este é um servidor público,
não um servidor terrestre. Vou clicar em
Ocultar servidores vazios, ele será
atualizado mais uma vez, não
há servidores vazios Basicamente, deve
exibir o servidor. Eu clico em Atualizar mais uma vez. Posso remover isso
mais uma vez e tudo
está funcionando bem. Eu posso clicar nele e ele
deve entrar no servidor. Aqui você vê um Join the server. Agora posso selecionar, por
exemplo, Counter Terrorist, e é assim que você adiciona o
modo multijogador do Steam ao seu projeto. Vá em frente e salve tudo. Muito obrigado
por assistir novamente. Você sempre pode acessar o
Game Instru.com e eu lançarei muitos outros cursos
sobre multijogador no Steam, dois jogos D
no Unreal Qualquer coisa que você realmente deseje. Assim, você sempre pode
ir ao meu servidor Discord, no servidor da comunidade, e sempre pode escrever seus
desejos para quais cursos deseja ver, se
precisar de alguma ajuda Também estou disponível para
ajudá-lo. A comunidade é muito
boa e você também pode falar sobre muitas outras coisas de desenvolvimento de
jogos. Não precisa ser um problema. Muito obrigado por assistir. Obrigado pelo
apoio e espero ver você no meu próximo
curso. Obrigado.