Como adicionar o Multiplayer no Steam – Unreal Engine Blueprint | Pixel Helmet | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Como adicionar o Multiplayer no Steam – Unreal Engine Blueprint

teacher avatar Pixel Helmet, Game Developer & Publisher

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      1.00 Introdução

      0:55

    • 2.

      1.01 VS, . NET Core, . NET Framework e DirectX

      2:32

    • 3.

      1.02 Como converter o projeto para C++

      2:47

    • 4.

      1.03 Como adicionar o plugin Sessions Advanced no Steam

      1:22

    • 5.

      1.04 Construindo no Visual Studio

      2:40

    • 6.

      1.05 Como ativar o plugin de sessões avançadas no Steam

      0:48

    • 7.

      1.06 Como editar o arquivo DefaultEngine.ini

      3:01

    • 8.

      1.07 Como criar o mapa do menu principal

      1:03

    • 9.

      Modo de jogo e controlador do jogador no Menu principal

      2:13

    • 10.

      2.01 Introdução aos Blueprints de widgets

      4:51

    • 11.

      2.02 Como importar uma fonte personalizada

      2:52

    • 12.

      2.03 Como criar o menu principal

      18:57

    • 13.

      Animação da interface do usuário do nome do jogador 2.04

      4:15

    • 14.

      2.05 Criando a enumeração

      2:37

    • 15.

      2.06 Função Show & Hide Widget

      10:36

    • 16.

      2.07 Comunicação Blueprint - Casting

      3:59

    • 17.

      2.08 Comunicação Blueprint - Interfaces

      7:32

    • 18.

      2.09 Programando o menu principal

      3:12

    • 19.

      2.10 Programando o nome do Steam

      3:10

    • 20.

      2.11 Como criar o fundo do menu principal

      7:25

    • 21.

      2.12 Adicionando Button SFX

      3:14

    • 22.

      3.01 Como criar o widget do servidor

      3:11

    • 23.

      3.02 Como criar o widget do Create Server

      26:09

    • 24.

      3.03 Como obter o nome do servidor e o mapa selecionado

      11:13

    • 25.

      3.04 Como obter os caça-níqueis, a linguagem e a privacidade

      7:23

    • 26.

      3.05 Programando o Back Button

      3:10

    • 27.

      3.06 Crie sessão avançada

      8:43

    • 28.

      3.07 Programação do Create Server Button

      2:37

    • 29.

      3.08 Como adicionar a animação da IU do Create Server

      4:37

    • 30.

      4.01 Como criar o widget do navegador do servidor

      2:25

    • 31.

      4.02 Como criar o widget do navegador do servidor

      13:05

    • 32.

      4.03 Como criar o widget do cartão do servidor

      18:24

    • 33.

      4.04 Como adicionar o servidor à lista

      7:47

    • 34.

      4.05 Como adicionar um indicador de servidores refrescante

      7:28

    • 35.

      4.06 Função de resultado de show session

      4:52

    • 36.

      4.07 Filtragem para a linguagem do servidor

      8:08

    • 37.

      4.08 Filtragem apenas para servidores LAN

      6:04

    • 38.

      4.09 Escondendo servidores vazios

      1:25

    • 39.

      4.10 Filtragem para o nome do servidor

      6:47

    • 40.

      4.11 Como obter as configurações extras para o Cartão do servidor

      3:40

    • 41.

      4.12 Como atualizar as informações do cartão do servidor

      8:40

    • 42.

      4.13 Como participar da sessão

      0:50

    • 43.

      4.14 Navegador do servidor Back Button

      4:15

    • 44.

      4.15 Testando o resultado final

      6:42

    • 45.

      4.16 Empacotamento do projeto

      7:43

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

37

Estudantes

--

Projeto

Sobre este curso

Aprenda como adicionar o Multiplayer no Steam a qualquer jogo!

Você quer adicionar o multiplayer no Steam aos seus projetos de jogo, mas não sabe como começar? Nosso course leva você passo a passo pelo processo, começando com a instalação do plugin Steam Advanced Sessions e terminando com o projeto do jogo para seus amigos e familiares experimentarem. Nosso programa aprofundado garante que você terá todo o conhecimento necessário para adicionar o multiplayer no Steam a qualquer um dos seus projetos de jogo.

Para iniciantes e aspirantes a desenvolvedores de jogos

Se você é um iniciante ou um desenvolvedor de jogos experiente, este abrangente course irá guiá-lo passo a passo sobre como adicionar o Steam Multiplayer ao seu projeto. Você não precisa de nenhum conhecimento prévio para começar. Este curso não só demonstra como integrar o Steam no seu jogo, mas também ensina como utilizar o Unreal Engine 5 em geral, incluindo a linguagem de programação visual Blueprint.

Começar a trabalhar com Unreal Engine 5 e Steam: aprenda fazendo!

Aprenda como implementar o Steam no Unreal Engine 5 com estes tutoriais em vídeo fáceis de acompanhar. Você vai começar com o básico do plugin Sessions Avançadas do Steam e progredir para tópicos mais avançados, como a criação do Navegador do servidor, o menu Host e os filtros do servidor. Este é o course mais abrangente disponível sobre o uso do Steam com o Unreal Engine 5, fornecendo instruções detalhadas e uma experiência fácil de usar.

Nesse curso você vai aprender a:

  • Instale o plugin Sessions Advanced do Steam
  • Crie o menu principal para jogos online
  • Criar o menu "Criar servidor" para hospedar servidores online
  • Criar o navegador do servidor e exibir servidores online
  • Adicionar uma opção de filtro do servidor para filtrar o idioma, o nome do servidor, a LAN e muito mais.
  • Como criar, pesquisar e participar de servidores de jogos online.
  • Como empacotar o projeto para amigos e familiares brincarem juntos.

O que me torna qualificado para ensinar você?

Meu nome é Moustafa Nafei, e sou o diretor e desenvolvedor do Farmtale no Steam, feito apenas com Blueprints. Com anos de experiência em desenvolvimento e ensino de jogos com 30.000 estudantes em todas as plataformas, vou mostrar as melhores práticas para alcançar um desempenho otimizado e pronto para o jogo.

Junte-se a uma comunidade de apoio com desenvolvedores com a mesma mentalidade.

Colabore, compartilhe ideias e obtenha inspiração de outros alunos enquanto embarcam nessa jornada juntos.

Nos vemos na aula 1!

Conheça seu professor

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Professor

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

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.