Transcrições
1. Introdução: Neste curso, vamos aprender os conceitos básicos de plantas passando
pela linguagem juntos e, em seguida, criar um pequeno jogo com o que aprendemos. Se você estiver interessado em um dos meus outros cursos, você pode conferir meu perfil neste site, se são projetos para criar seu próprio jogo sem escrever uma única linha de código. Ou se você estiver focado em aprender Unreal Engine cinco em geral, você pode encontrar um curso adequado para você. Bombshell que eu lancei no vapor é um exemplo de um jogo usando apenas blueprints. Isso é especialmente útil para artistas como eu programar novamente do início ao fim, mesmo que eu não tenha um fundo de programação, vá em frente e confira meu perfil para ver quais cursos são lançados até agora, meu nome é Mustafa, e eu sou o CEO , diretor de
jogos e designer de entretenimento forrageiro Titan. Eu tenho trabalhado na Unreal Engine nos últimos seis anos e recentemente lancei cauda de fazenda em vapor, que é recebido muito positivamente. Eu também passei 1,5 anos desenvolvendo meu projeto pessoal, comprei o Kraft, e atualmente estou dirigindo, projetando e programando o novo grande título da minha empresa, que é um jogo de plataformas 3D sem aviso prévio. Este curso contém tudo o que você precisa para começar com o Unreal Engine cinco, incluindo minha experiência pessoal ao longo dos muitos anos e projetos em que trabalhei. No final deste curso, você poderá programar usando blueprints e criar seu próprio jogo pequeno a partir do zero. Este curso é dividido em seções e vamos cobrir e Unreal Engine 5, visão geral e navegação, fundamentos do blueprint, variáveis e matrizes, eventos, funções e macros, enumeração, Blueprint Classes, blueprint actors, Blueprint comunicação. E no final, vamos criar um jogo com o que aprendemos. Eu projetei este curso para qualquer um que esteja interessado em criar jogos no Unreal Engine cinco, ou se esforça com a criação de um jogo que corresponda aos padrões atuais da indústria. Espero que se inscreva e se junte a mim neste curso. E lembre-se também que eu estou aqui durante todo o curso para ajudá-lo. Espero vê-lo em breve.
2. Download o a baixar o motor: Baixar Unreal Engine cinco. Primeiro você precisa baixar o lançador Epic Games. E faça isso, você tem que entrar em Epic Games.com. E a partir daqui você pode clicar neste botão azul chamado obter jogos épicos. Quando você clicar nele, você baixará o lançador Epic Games, que eu já fiz. Então este é o lançador épico de Jogos. E dentro do lançador você deseja clicar no botão Unreal Engine. E dentro do botão Unreal Engine, e você pode ver diferentes guias aqui em cima. Clique em Unreal Engine 5 e clique em Baixar acesso antecipado. Eu já fiz isso. Então, dentro da biblioteca você pode ver os mecanismos baixados. E este é Unreal Engine 5. Então é isso que vamos usar para este curso. Vamos criar nosso primeiro projeto na próxima lição.
3. Como criar o projeto: Tudo bem, então vamos criar um novo projeto dentro da guia Biblioteca no Unreal Engine, nós lançamos o mecanismo. Quando o motor for iniciado, você pode ver esta aba chegando e é o Unreal Project Browser. Aqui você pode ver todos os projetos que você já fez. E se você não fez nenhum projeto anteriormente, obviamente ele estará vazio. E assim queremos trabalhar dentro da guia Jogos. Existem outras abas para cinema e vídeo e arquitetura e assim por diante. Mas queremos trabalhar em jogos. E o que eu costumo fazer é começar com um projeto em branco porque eu gosto de criar tudo do zero. Então aprendemos mais. Mas todos esses modelos, estes podem ser criados a partir do projeto em branco. Mas esses modelos podem começar se você for um relativamente novo no mecanismo. Por exemplo, se você quiser fazer um jogo de tiro em primeira pessoa, você tem este modelo em primeira pessoa ou o quebra-cabeça e terceira pessoa e assim por diante. Mas, novamente, todos esses modelos podem ser feitos a partir do zero, do projeto em branco. À direita, vamos escolher o plano porque isso é o que vamos usar. E este tubo é bom, qualidade máxima predefinida. E eu quero desmarcar o conteúdo inicial. Nós não precisamos de nenhum e nós não vamos usar Ray Tracing. E esse projeto, você pode chamá-lo do que quiser. Eu só vou chamá-lo de blueprints e clique em Criar projeto. Então, e o projeto é aberto. Isto é o que você vai ver. Então este é Unreal Engine 5. E na próxima lição, vamos falar sobre a interface do Unreal Engine 5. Antes de irmos às plantas.
4. Os primeiros passos no motor Unreal: Mesmo que este seja um curso de blueprints, eu quero ir um pouco sobre o Unreal Engine e a interface. Porque mesmo que você seja um programador, você tem que saber um pouco sobre o motor e como contornar. Às vezes, o cliente quer que você adicione uma luz, ou eles querem que você exclua algo, eles querem que você altere algumas propriedades. E também quando você está programando, você tem que mudar algumas propriedades e você tem que
saber onde no motor você pode encontrar as coisas. Então, para começar, podemos começar para o canto superior esquerdo. Temos todos esses botões padrão que você já viu em outros softwares também. No arquivo aqui podemos criar um novo nível, podemos abrir um novo projeto, podemos salvar o projeto atual, temos uma edição. O importante é as preferências do editor. Então, se você quiser editar algo dentro do seu editor, aqui está a preferência é para ele. Eu não trabalhei muito aqui dentro, mas você pode ver aqui que você pode, você pode editar o editor ao seu gosto. E temos as configurações do projeto. Dentro das configurações do projeto, você estará trabalhando muito e nós vamos chegar a ele mais tarde também. Mas dentro daqui, por exemplo, você pode alterar o modo de jogo em que você está trabalhando. Chegaremos a isso mais tarde. E você pode mudar o filme para quando o jogo começar. Estas são as definições de empacotamento para quando terminar o jogo, a descrição e assim por diante. Então, um monte de configurações ditas que você tem que trabalhar com quando você está fazendo um jogo de vídeo. A próxima coisa são os plugins. Em alguns dos plug-ins, você pode ver que você pode habilitar e desabilitar muitos plug-ins. E a coisa mais importante para mim quando começo um projeto é dentro da realidade virtual. Eu geralmente sempre desabilito o Oculus VR e desabilito o VR vapor quando crio um novo projeto. Porque quando você coloca este jogo no Steam e não é um jogo de VR, ele vai abrir no modo VR por algum motivo, que ele fez para cauda de fazenda quando eu lancei meu jogo no Steam, ele geralmente aberto em VR, mesmo que não fosse um jogo de VR. Então eu costumo dizer, bem dose e reiniciar o motor. Mas, por enquanto, você não tem que fazer isso. Então, não vamos precisar desativá-los, mas eu só fiz para que você pudesse ver. Está bem. E a próxima coisa é janela dentro daqui. Você pode abrir várias janelas, se desejar. Por exemplo, você pode ver aqui temos um painel de detalhes dentro dos detalhes do Windows. Você pode abrir um segundo painel Detalhes. E você pode ver aqui estas são na verdade as mesmas janelas. Então, se eu cliquei em algo dentro da janela de exibição, você pode ver que essa mesma informação é exibida em ambos os lugares. Então, dentro da janela você pode abrir várias janelas. E isso é muito útil se você tiver várias telas. Então, por exemplo, eu posso puxar isso para a minha segunda tela e eu posso trabalhar lá. enquanto, não temos coisas mais importantes dentro do Windows. Dentro de ferramentas, vamos pular isso por enquanto e tipo de construir. Vamos pular isso por enquanto. E mHealth, você pode ler sobre a documentação do Unreal Engine. A próxima coisa é aqui em baixo nós temos um botão de salvar. Dentro do botão de criação. Isso é importante para isso? Aqui você pode criar ativos diferentes. Por exemplo, luzes. Se você clicar na luz do ponto, você pode ver que você criou uma luz de ponto. Vou excluí-lo novamente pressionando o botão Excluir no meu teclado. E dentro do Criador você tem formas. Você pode criar um cubo, esfera, cilindro, plano cone. Você pode criar câmeras, efeitos visuais, volumes. Chegaremos a isso mais tarde. E estas são todas as classes que você pode criar. O conteúdo é que você pode abrir um novo navegador de conteúdo. E o navegador de conteúdo está aqui embaixo. Se você clicar neste botão ou se você clicar em Controle de Espaço, e isso fará com que ele apareça também. Mas se você clicar em navegadores de conteúdo, isso é realmente o mesmo que isso. Então você tem várias janelas para isso para blueprints. Na verdade, é com isso que vamos trabalhar, principalmente. E dentro daqui você pode programar o jogo. Podemos criar uma nova classe blueprint e abrir o Level Blueprint que vai funcionar mais tarde. Não se preocupe com isso por enquanto. E nos cinemas não vamos tocar aqui. Você pode criar cinemáticas. Temos diferentes ferramentas aqui temos a ferramenta Selecionar, ou você pode selecionar coisas diferentes. Temos a ferramenta de paisagem, que você
possa criar uma paisagem para o jogo. Temos aqui uma ferramenta de folhagem. Você pode agradar a folhagem, como plantas de grama e vegetação, assim por diante. Temos a ferramenta de pintura de malha. Então, se você tem uma malha como esta e o chão, você pode pintar sobre ela se você tiver uma textura, mas não se preocupe com isso por enquanto. Este é um projeto de partituras, não um, um curso de artista. Nós temos a ferramenta de fratura, e isso é auto-explicativo, e nós temos a ferramenta de edição de pincel aqui. Temos o botão Play. Então, se você clicar em jogar, você pode jogar o jogo em que você está trabalhando atualmente. Então, isso vamos usar muito. Se você clicar nos três pontos ao lado dele, você pode abrir o jogo em um novo editor em vez de abri-lo dentro da janela de exibição. E, e plataformas aqui você pode empacotar o seu jogo para diferentes, plataformas diferentes. E nas configurações à direita, você pode visualizar as configurações do mundo. Chegaremos a isso mais tarde. Você pode ver as configurações do projeto com as quais já fizemos a partir daqui. E você também pode ver os plug-ins que já assistimos dois. Ok, então eu vou voltar para a ferramenta de edição aqui. A próxima coisa importante é o painel Detalhes à direita. Então, no painel Detalhes, você pode ver aqui propriedades diferentes. Então, se você clicar em coisas diferentes dentro da porta de exibição, você pode ver que diferentes detalhes são exibidos. E estes são os detalhes da coisa que você selecionou em sua janela de exibição. Agora, se eu selecionar minha malha de terra, você pode ver as diferentes propriedades que ela tem. Tem a localização onde está, tem a rotação, a escala. Então, por exemplo, se eu alterar esse local, você pode clicar e arrastar. Você pode ver que ele muda o local. Você também pode apenas digitar um número. Existem muitas configurações, como física, colisão, renderização de iluminação, navegação e assim por diante. Aqui estão todos os detalhes para a coisa que você selecionar e há, claro, um detalhe diferente para o que você selecionar. Então, se eu selecionar a iluminação, você pode ver aqui eu posso mudar a intensidade da luz. Se eu selecionar a esfera de reflexão, posso mudar o brilho dela, o raio dela, e assim por diante. Então este é o painel Detalhes e é muito importante que vamos trabalhar muito com isso. O painel celular. Temos o World Outliner, que você pode ver aqui à direita. Se você clicar no World Outliner, isso é realmente o que você tem dentro do nível em que você está trabalhando atualmente. Então, por exemplo, temos essa malha de terra. Se eu clicar nesta malha de terra e clicar no World Outliner, você pode ver aqui que eu selecionei este andar. E se eu clicar neste aqui,
esta é a clarabóia. E se eu clicar na palavra outliner, você pode ver que eu selecionei a clarabóia. Você também pode selecionar os diferentes itens dentro da janela de exibição
clicando aqui em vez dos itens aqui. Então, se você clicou neles, você pode ver que ele está selecionando-os dentro da janela de exibição. Agora estes são todos os itens que você tem dentro de seu nível. As configurações do mundo aqui, principalmente vamos mudar o modo de jogo se quisermos fazer alguma coisa aqui. E isto é para plantas, não se preocupe com isso por enquanto. Então, não vamos trabalhar muito dentro das configurações do mundo por enquanto. A última coisa antes de entrarmos no visor é a gaveta constante. Então, se você clicar neste botão ou se você clicar em espaço de controle, você irá aparecer o desenho de conteúdo. Dentro desta gaveta de conteúdo você pode ver pastas e é aqui que todos os seus arquivos estarão para o jogo. Então, se você tem um personagem ou
um, um inimigo e MPC, por exemplo, se você tem um modelo de uma moeda que você quer usar no jogo, todos esses arquivos estão dentro daqui. E uma vez que você tem o arquivo dentro daqui, você pode realmente arrastá-lo para dentro do seu nível. Então, por exemplo, eu posso ter uma poção de saúde ou uma poção de maneira que eu quero exibir aqui. Posso arrastá-lo para dentro do meu jogo. Aqui estão todos os seus arquivos. O que você pode fazer é também criar novas pastas clicando com o botão direito do mouse aqui. Crie uma nova pasta. Você pode clicar com o botão direito do mouse na pasta, e eu também escolherei cores diferentes para ela se você gosta de organizar as coisas. Então agora você pode ter cores para suas pastas e você também pode adicioná-las aos favoritos se você quiser,
para fácil acesso, acessá-las facilmente. Então eu vou excluir esta nova pasta clicando em qualquer clique com o botão direito do mouse e excluir. Ou vou simplesmente clicar em Excluir no meu teclado. Se você não quiser clicar em controle e espaço o tempo todo para obter este conteúdo desenhar ou para cima, você pode realmente clicar na gaveta de conteúdo e clicar em Dock e layout todo esse pato, o Han, o navegador de conteúdo. E, na verdade, apareceu aqui por alguma razão. O que você pode fazer um agente oral é que você pode realmente clicar e arrastar as guias para movê-los ao redor. R. Para este, eu só vou clicar, clique com o mouse e clique em Restaurar guia. E você pode ver aqui, na verdade, é uma guia agora. Mas eu quero-o aqui em baixo, tal como o motor normal do Unreal Engine, tal como o motor normal para. Então eu vou arrastá-lo para baixo e eu vou colocá-lo aqui embaixo. E eu posso reduzi-lo, então eu tenho mais espaço. Você pode trabalhar com este navegador de conteúdo como quiser, em vez de clicar no congênito o tempo todo. E se você não quiser isso de qualquer maneira, você pode clicar com o botão direito do mouse e clicar em Fechar e você estará de volta para onde começou. Mas para este curso para tornar mais fácil para você vê-lo o tempo todo, eu vou apenas clicar em Dock e layout e fazer isso aparecer o tempo todo. Ok, então a última coisa mais importante realmente dentro do motor é a janela de exibição. Isso é muito importante porque aqui é o que você vai, é
aqui que você vai ver o seu jogo. Para navegar pelo interior da janela de exibição, você tem que clicar,
segurar, clicar e segurar, clicar com o botão direito do mouse. Você pode ver aqui que você pode olhar ao redor enquanto faz isso. Enquanto eles seguravam o botão direito do mouse, você pode clicar em um, W, D e S. Então aqui você pode se mover na janela de exibição enquanto Leila, você está segurando o botão direito do mouse, você pode ver que você pode mover o mouse e Movam-se. E é bastante estranho se você não está acostumado com isso. Mas se curios para jogar jogos, isso se sente muito natural. Apenas jogando, pressionando a, W, D e S enquanto você está segurando o botão direito do mouse, conselho segure o botão esquerdo do mouse. E você pode ver que você pode se mover se você mover o mouse. E costumo nunca usar isto. Na verdade, nunca o uso. Por isso, normalmente mantenho o botão direito do rato e mexo quando estou a trabalhar. Também pode usar a roda do mouse para ampliar e reduzir. Ou ele pode simplesmente mais uma vez, basta mover mais perto usando o segurando o botão direito do mouse adicionar movimento ao redor. Então, isto é a mesma coisa. Ele também pode mover para cima e para baixo mantendo pressionado o botão esquerdo do mouse e o botão direito do mouse. E você pode ver aqui eles podem se mover para cima e para baixo. E novamente, eu nunca uso isso, mas isso está lá se você quiser usá-lo. E dentro da janela de visualização temos botões diferentes. Temos este botão. E dentro daqui você pode mostrar o FPS. Isso é muito importante quando você cria seu jogo. Então você pode ver que o seu jogo não está atrasando porque é um otimizado. Na verdade, você também pode ver diferentes etapas para quando estiver otimizando seu jogo. Não vamos entrar na otimização do jogo por enquanto. Você pode alterar o campo de visão. Você também pode clicar muito importante na vista do jogo e qual é a vista do jogo, você pode vê-lo esconde todos os ícones dentro da porta de exibição. E isso é muito bom para quando você quiser ver seus jogos sem qualquer um desses ícones na exibição. Assim, você pode realmente fazê-los aparecer novamente clicando na visualização do jogo. Ou você pode pressionar G, isso é o que eu costumo fazer. Então, se você ver meus ícones aparecerem e desaparecerem, isso é porque eu estou pressionando G novamente e novamente. A próxima coisa importante é o modo imersivo. Então isso irá tela cheia a viewport. E isso é muito legal para quando você quer ver o seu jogo completamente. Assim e também acessá-lo pressionando f 11. Então, se 11 irá minimizar e maximizar a viewport e G fará com que os ícones desapareçam. Então agora você pode ver o seu jogo sem um LD nevando ícones em sua exibição. Então eu vou pressionar G novamente, e eu vou pressionar f 11 para voltar para a visão normal. E a última coisa aqui que costumo fazer é criar uma câmera. Se você quiser criar uma câmera onde você está de pé agora, você pode clicar em Criar câmera aqui e escolher o tipo de câmera que você deseja. Você também pode fazer uma captura de tela do que você está visualizando agora. A próxima coisa é que você pode mudar entre os modos de perspectiva. Assim, por exemplo, você pode ver a vista superior do seu jogo. Você quer mudar para botão, baixo para a esquerda, direita. E isso é muito legal para quando você quer colocar algo de forma muito específica. Por exemplo, se você quiser isso no meio, você pode clicar em motins, você pode clicar à esquerda e também se certificar de que está no meio e assim por diante. Em vez de tentar, para fazê-lo ir dentro do meio, o modo de perspectiva, então é muito mais fácil usar esses modos de visualização. Temos os modos de iluminação. Então, dentro desses modos de visualização, temos a liderança, no que estamos atualmente. E isso vê o jogo com a iluminação que temos atualmente. Também podemos ver o jogo sem qualquer iluminação. E assim você pode ver que temos diferentes modos de visualização que podemos usar. Dentro do show. Você pode exibir e remover itens que não deseja ver. Por exemplo, ícones aqui. E para a direita. Muito importante. Na verdade, estou voltando para o modo LED. E à direita aqui, você tem diferentes ferramentas que você pode selecionar. Esta é a ferramenta de seleção. Então isto é para selecionar ou fazer com que possamos selecionar itens dentro da janela de exibição. Temos a ferramenta Mover. Então, aqui você pode ver um ponto de pivô aparecer. E quando você arrasta os pontos dinâmicos, você os move nessas direções respeitosamente. Então você pode fazer isso com todos os itens dentro desse nível. Se você clicar na bola branca e no meio, você pode movê-la em todas as direções diferentes. Se você clicar no quadrado em qualquer um desses eixos, você pode movê-lo, movê-lo em dois eixos diferentes. Em vez de um, temos a ferramenta girar. Então, com a ferramenta de rotação, você pode girar o item. Então, se eu clicar na malha de terra e clicar aqui, você pode ver que ele gira ou o eixo que eu selecionei. A próxima coisa é a ferramenta de escala. Assim, para a ferramenta de escala, você pode optar por dimensioná-la em diferentes direções. Ou você pode optar por clicar no quadrado branco para torná-lo escala uniformemente. E o que eu costumo fazer, e isso é muito importante, é usar o teclado para essas ferramentas. Por isso, leva muito tempo para clicar
na ferramenta Mover e, em seguida, mover o chão e, em seguida, você deseja girá-lo. Você clica na ferramenta girar aqui em cima e você girá-lo e assim por diante. O que é muito mais fácil de fazer é clicar na fila. Se você quiser escolher a ferramenta Selecionar, clique em W. Se você quiser se mover, clique em e Se você quiser girar e clique em R se quiser escalar. Ou Q, W, E, R. Então, por exemplo, como olhar WE para movê-lo. Vou clicar em E para girá-lo. Eu clico em R2, dimensioná-lo para baixo, talvez assim eu possa clicar em W para movê-lo novamente e assim por diante. A próxima coisa são as ferramentas de encaixe. Então, o estalo, você pode ver aqui, quando eu mover este chão, ele não está se movendo suavemente. Isto é porque temos o estalo ligado. E agora ele está quebrando a cada 10 e a grade. Então, se eu fizer 50, você pode ver que ele está quebrando muito mais em uma distância maior. Então, se e eu posso desativar este encaixe clicando neste ícone aqui, e você pode ver que ele fica branco. E isso é porque ele não está mais habilitado. E eu posso mover a malha do solo suavemente. A mesma coisa vale para as rotações. Então, se eu girar agora ele gira a cada dez graus. Você pode alterá-lo para outro número ou você pode desativá-lo clicando no ícone. E agora você pode, você pode girá-lo suavemente. E isso é a mesma coisa com a ferramenta girar ou escala. Aqui você pode alterar a velocidade da câmera. Isto também é muito importante. Então, se você quiser trabalhar com algo muito próximo, você quer, você não quer ter uma câmera muito rápida. Então o que você quer fazer é reduzir a velocidade da câmera. E agora podemos trabalhar com algo muito próximo. Ou se você tem um mundo muito grande, você quer aumentar a velocidade da câmera para que ela possa se locomover muito mais rápido. E a última coisa são esses viewports. Então, se você clicar neste botão, você pode ver todos os viewports diferentes ao mesmo tempo. Então aqui temos a visão em perspectiva, temos a visão de trás, vista direita e uma vista de cima. E aqui você pode trabalhar com diferentes pontos de vista em vez de ter apenas uma de cada vez. Você também pode maximizar um dos viewports clicando neste botão aqui. E você pode voltar clicando no botão novamente e maximizar a janela de exibição. Ok, e a última coisa importante deles é salvar o seu trabalho. Você pode simplesmente clicar em Arquivo e Salvar tudo. Mas por enquanto, eu não vou fazer isso porque eu realmente não quero salvar este nível. Eu só queria te mostrar como usar o motor. Criaremos nosso próprio novo nível nas próximas lições. Então isso era tudo importante dentro do motor. Está tudo bem para que você não saiba tudo. Se você é relativamente novo no motor, você vai conhecê-lo passo a passo. Mas estes são todos os passos importantes para começar. Então vamos passar para a próxima lição e aprender mais sobre plantas.
5. O que são os are: Certo, antes de começarmos a fazer as plantas, quero explicar quais são as plantas. Então, quando eu digo plantas, você é realmente programador. Se você está trabalhando com plantas, não é a, outra
coisa ou você não está trapaceando ou o que quer que seja. Plantas são uma forma de programação. E é, na verdade, uma programação visual. Então é chamado de script visual. E o que você faz com as plantas é, na verdade, você pode ver aqui que é muito visual. A outra linguagem de programação, por exemplo, C plus que você pode escolher no Unreal Engine. Isto é o que parece e você provavelmente já viu antes. Isso provavelmente não significa nada para você se você não é um programador e parece muito confuso. É por isso que as plantas são tão boas. É muito mais fácil de usar e você pode visualizar o que realmente está fazendo. Então isso é uma mudança de vida para artistas. E algumas pessoas pensam que os projetos são fracos, que você não pode criar jogos poderosos com ele. Ashley, eu criei meu jogo no Steam Fontanelle totalmente em Blueprints. Não há um único código C mais. Além disso, você pode criar outros jogos que eu tenho. Eu coloquei um par de jogos que você pode definitivamente criar blueprints com ou sem quaisquer problemas, sem qualquer atraso ou qualquer outra coisa. Por exemplo, mario, uma plataforma onde você pode criar definitivamente com blueprints. Ele também pode criar um jogo como a floresta, que está atualmente no Steam. Você também pode criar começou vale, ou você pode criar Minecraft. Você também pode criar outros jogos, como Counterstrike e assim por diante. Então os projetos são muito poderosos e você pode realmente criar qualquer coisa que você tem em mente. Ok, então chega de saber quais são as plantas. Vamos realmente entrar no mecanismo e
começar a olhar para a interface do editor de blueprint.
6. Configuração e design: Antes de fazermos qualquer coisa dentro do motor, quero criar um novo mapa. Não quero trabalhar no preço praticado anteriormente. Então o que eu vou fazer é clicar em Arquivo e clicar em novo nível. E eu vou escolher o padrão apenas para que tenhamos um, um nível seria iluminação. Vou clicar no padrão. E agora pede-lhe para salvar este nível aqui. Na verdade, estou clicando, não salve porque eu não quero salvá-lo. Uma vez que você tenha criado seu novo nível, você pode ir em frente e criar uma nova pasta aqui em baixo. E você pode chamá-lo de mapas. E o que você pode fazer é realmente salvar este nível dentro daqui. Então eu vou clicar em Salvar tudo e isso lhe dá nada acontece. Isso é porque eu não fiz nada aqui. Então, se eu apenas clicar em algo e movê-lo ao redor, eu posso clicar em novamente, salvar tudo. Agora ele me pede para salvar o nível. Eu vou entrar nos mapas e vou chamá-lo de mapa. E isso não importa. Vou chamar-lhe “tutorial”. É sempre bom ter uma convenção de nomes na frente do,
os arquivos porque quando você tem um jogo enorme, você quer procurar algo. É sempre mais fácil escrever mapa e todos os seus mapas aparecerão. Então este é o novo nível que criamos, e eu vou clicar em Salvar tudo. E agora podemos trabalhar dentro deste nível. Vou clicar nesta esfera de reflexão e clicar em Excluir. Eu realmente não vou precisar dele. Também clicando no nevoeiro, clicando em Excluir, e agora eu não tenho esse nível. Então, para responder aos planos, temos os planos de nível ou, se você ainda não o viu,
você pode clicar com o botão direito do mouse aqui em baixo. E você pode ver que você pode criar uma classe de blueprint. Dentro daqui, há um monte de plantas diferentes. Então, com estes vamos trabalhar mais tarde. Não se preocupe com isso por enquanto. Vamos facilitar para começar. Começaremos aqui e as plantas, e abriremos as Plantas de Nível. Então este é o editor de plantas. Você pode ver que o editor quase parece o mesmo que a interface padrão do mecanismo. Temos o painel Detalhes à direita. Temos um compilador aqui em baixo. E podemos ver os diferentes gráficos que fazemos. Por aqui. Temos algo chamado funções, macros, variáveis e até mesmo despachadores são sobre aqueles por enquanto. Aqui em cima você tem os outros botões que você também viu aqui. O material tem botões diferentes. Havia sobre um Fernando. Eu realmente não quero que você se confunda desde o início, mas não se preocupe com isso por enquanto. Os botões mais importantes dentro deste editor é decompile. Então, o Compilar é quando você cria um código e você quer limpá-lo, e então você pode reproduzi-lo. Você clica em compilar e jogar. Quando você quiser encontrar algo, você pode clicar em Localizar e você pode procurar por algum blueprint. Não, fazer isso que você tem você pode ir dentro
das configurações de classe e você pode alterar algo em suas configurações de classe. Você tem os padrões de classe nos quais pode alterar algumas configurações. E aqui no meio, que é muito importante, está todo o código que você vai escrever. Então aqui você pode ampliar e reduzir usando o botão de rolagem do mouse. Você também pode manter pressionado o botão direito do mouse para se mover. E mantenha pressionado o botão direito do mouse, mova-se e a janela de exibição para se mover. Mantenha pressionado o botão esquerdo para selecionar todo o código que você escreveu. E isso é tudo sobre as coisas importantes que você tem que saber dentro deste editor. E novamente, todos os arquivos que você criar, não os arquivos ou as notas que você criará, aparecerão aqui. Então, por exemplo, se você criar uma variável que você pode usar o seu mais tarde, vamos chegar a isso nos vídeos posteriores. Você pode ver aqui que o, que o nó é realmente criado aqui à esquerda. Mas vamos deletar por enquanto. Nós realmente não vamos precisar dele. Então eu vou clicar no botão Excluir, e eu vou clicar em Arquivo e Salvar tudo. Vamos falar sobre a ordem de execução.
7. Ordem de execução: Ok, então vamos falar um pouco sobre a ordem de execução. E a ordem de execução é em que ordem o código será executado ou, ou executado. Então, para começar a trabalhar, cargas vão dentro dos planos de nível. E dentro daqui, na verdade, vou criar uma cadeia de impressão. Então isso irá imprimir um texto em sua tela. Então você pode ver aqui, você pode clicar com o botão direito do mouse dentro do gráfico de eventos e você pode digitar o nó que deseja criar. Você também pode encontrar nós clicando aqui e clicando em qualquer um desses nós. E você pode ver aqui que o cria. Então o que eu quero fazer é clicar aqui no pino de execução. Este é o pino de execução e este é um evento. Não se preocupe com isso por enquanto. E isto é o que vai acontecer quando começarmos a jogar o jogo. E se você arrastar da caneta de execução e apenas escrever impressão, você pode ver aqui algo chamado string de impressão, e isso irá imprimir um documento de texto na tela. Então, se você clicar nele e você pode movê-lo ao redor. E eu gosto de organizar as coisas. E você também pode torná-lo direto selecionando-o, mantendo pressionado o botão esquerdo do mouse, selecione essas duas notas e clique em Fila. Isso vai endireitar os dois se você tiver muitos deles. E assim isso irá imprimir uma corda de sprint. Então vou dizer minha primeira mensagem e pressionar Enter. E você também pode clicar na seta aqui para baixo e você pode alterar algumas configurações. Então, por exemplo, eu quero exibi-lo na tela por 10 segundos e a cor deve ser vermelha ou laranja ou onde quer que seja. Ok, eu vou clicar na seta novamente só para esconder esta informação. E quero imprimir outra mensagem. Então, se eu clicar ou segurar essa caneta de execução e deixá-la ir, eu posso escrever impressão novamente e clicar em enter e clicar em outra string de impressão. Você também pode simplesmente copiar isso clicando em Control C e Control V para copiá-lo e colar. Ok, então para a próxima, vou dizer a segunda mensagem. Ok, então agora eu tenho duas mensagens e novamente, eu vou exibir por 10 segundos aqui em baixo. Tudo depende de você e talvez dessa cor. Certo, agora temos esse código. Este é o seu primeiro código. E para terminar o código, temos que compilar. Então lembre-se de compilar, o código funcionará e lembre-se de salvar. Ou posso clicar em Arquivo e Salvar tudo. Isso depende de você e você pode clicar no lugar. Então, quando eu clico no jogo aqui, seu símbolo é uma simulação e ele, você sabe, ele está tocando. Então você não pode realmente adicionar código porque você está clicando em jogar, você tem que clicar em parar para adicionar mais código. Mas quando você clica em jogar é o mesmo que clicar em jogar aqui em cima. Então, se eu clicar em Jogar pode ver que está splaying agora. E aqui para a luz dentro do visor, para o canto superior esquerdo você pode ver que diz minha primeira mensagem e segunda mensagem. Ok, se eu clicar em uma peça de novo, você pode ver no canto superior esquerdo que diz minha primeira mensagem e segunda mensagem. Então a ordem de execução é que o código sempre será executado em uma ordem cronológica. Começa com o início do jogo, o evento, depois passa para este, e depois passa para este. Nunca pode ir disto para isto sem executar esta parte. Ok? Então isso é muito importante para entender. Então deixe-me adicionar mais alguns nós. Na verdade, você não precisa seguir isso, mas eu só queria te mostrar. Então digamos que você tem todo esse código. E o jogo é, quando você joga vai executar este e depois este, e depois este, e depois este no final. Nunca vai tocar isto, isto, e isto só também vai tocar este e este. Ok? Então isso é muito importante para entender. Você não pode pular em código, mas você tem que executar esta linha de código um após o outro. Então foi isso para a ordem de execução. Isso é muito importante para entender e você pode realmente simplesmente excluir este evento tick também se você quiser. E lembre-se, sempre para compilar. Então este foi o seu primeiro código e plantas. E, na verdade, isso é muito simples. Só queria mostrar-lhe qual é a ordem de execução. E lembre-se, ele sempre é executado em uma linha de código. Nunca salta nessa linha. E vamos passar para as variáveis.
8. O que são variáveis?: Ok, então é muito importante entender variáveis porque este é o princípio principal na programação. E você vai usá-lo o tempo todo. E o que uma variável é um contêiner que contém informações. Assim, por exemplo, ele pode conter quantas moedas você é um jogador tem. Ele pode conter o tipo de cabelo que o jogador
escolheu na janela de personalização do personagem. Ele também pode conter a quantidade de saúde que o jogador tem. Ele pode conter informações sobre se o jogador está morto ou não, se o jogador está vivo ou se o jogador está em execução ou não, ou quão rápido o jogador está correndo e assim por diante. Então ele contém todas essas informações diferentes. Se você quiser criar uma variável aqui à esquerda, você pode ver a guia variáveis. Você pode clicar no botão mais. E isso criará uma variável. Você pode dar-lhe um nome, e você pode escolher que tipo de variável deve ser. Você pode ver aqui se você clicar na variável, você também tem o painel Detalhes. E aqui novamente, você pode alterar o nome e você pode alterar propriedades diferentes para esta variável. Nas próximas lições, eu quero rever o que todas essas variáveis são. Então eu quero explicar todas essas variáveis e temos uma compreensão de observar o que cada variável vai fazer.
9. Inteiro, Float e Byte: Tudo bem, então os primeiros tipos de variáveis que eu quero falar são o inteiro, flutuar e morder. Então, para começar, vamos criar a variável. Na verdade, vou deletar essas cordas de impressão que usamos anteriormente. E vamos criar uma nova variável. E o primeiro sobre o qual quero falar é o número inteiro. E vamos chamar isso de uma quantidade de moedas. Então você pode clicar com o botão direito do mouse e clicar em Renomear, ou você pode simplesmente clicar nele e clicar em F2 e quantidade certa de moedas. Então este é o nome da variável. Você também poderia ter mudado aqui se você quiser, também alterando o tipo de variável, se você quiser, você pode fazê-lo aqui. E este, eu vou arrastá-lo para fora e clicar em Obter. Eles são sobre obter e definir. Chegaremos a isso mais tarde. Mas para obter você também pode, em vez de arrastar e clicar em gets, ele pode segurar Controle e arrastá-lo para fora e é tudo obtê-lo automaticamente. Ok, então a quantidade de moedas que você pode ver aqui, ele diz, por favor, compile o projeto a fim de inserir os valores. Então, clicando em compilar, vamos fazer isso aparecer. E aqui podemos definir a quantidade de moedas que o jogador tem. Assim, por exemplo, 200 moedas. E novamente, isso mudará dinamicamente dentro do jogo, mas não estamos tão avançados agora, então estamos alterando manualmente. Então agora o jogador tem 200 moedas. Então, se você clicar nesta variável, ela diz 200. Foi o que dissemos. E eu realmente quero exibir este número para a tela. Então, se eu arrastar para fora e eu clicar em Imprimir, você pode ver que não há nada chamado string de impressão. E isso ocorre porque a string de impressão, o considerado o nó que imprime a mensagem na tela. Na verdade, é uma variável para uma variável de string. Então você pode ver aqui é na verdade um tipo de variável string. Então isso não é realmente o mesmo e, portanto, não pode imprimi-lo. Mas na verdade você pode imprimi-lo se você arrastar este pino e conectado com a corda, e ele realmente diz para você, eu vou converter este inteiro em uma string antes de eu poder imprimi-lo. E isso é o que ele está fazendo. Ele está convertendo o inteiro em uma string e, em seguida, ele o conecta ao, para o nó string de impressão. Você também poderia ter feito isso manualmente clicando para string. E você pode ver aqui duas cordas, e isso é realmente o mesmo e você poderia tê-lo conectado à cadeia de impressão. Então, a mesma coisa. E se eu ligar este evento ao pino de execução. E isso agora está dizendo que quando você começar a jogar o jogo,
por favor, alugue essa quantidade de moedas para a tela. Então eu quero imprimi-lo por dez segundos, por exemplo, para que possamos ter algum tempo para vê-lo. Clique em compilar, clique em Salvar. E eu vou minimizar isso um pouco e clicar no jogo. E você pode ver aqui é na verdade e Jing 200 moedas na tela. Então é isso que Job é. Este é um número que você pode escolher. E muito importante saber é que inteiros não podem conter números decimais. Então é isso que os carros alegóricos são. Então inteiros são sem decimais, certo? Então, se eu criar uma nova variável e eu chamá-la, por exemplo, peso, bem, isso pode ser o peso do caractere. E eu vou mudar o tipo para um flutuador, e eu vou segurar o controle e arrastá-lo para fora. Então esta é a variável de peso. E novamente, eu vou compilar para ver os valores. E agora você pode ver aqui este é um número seria decimais. Ok? Então, por exemplo, o peso do meu personagem em quilogramas é 75,85.8, por exemplo. E então agora isso é, este é um número com um decimal, então eu não posso escrever decimais aqui. Isto não vai ser aceite. Então, um inteiro é um número sem casas decimais. Um flutuador é um número com decimais. E pode, eu posso escolher imprimir isso na tela. Então, se eu estou conectado e você pode fazer isso segurando Alt e clicando na caneta de execução, ou este ou este aqui. E toda esta desconectada, posso afastá-la. E eu posso conectar isso à variável string, e ele irá automaticamente converter o flutuador em uma string para que ele possa imprimi-lo na tela. Clique em Compilar, Salvar e clique em jogar. E agora você pode ver que ele mostra o peso do meu personagem de 75,8 quilos. Ok? Então é isso que os carros alegóricos são. A última coisa é o byte. Vou clicar em Criar nova variável. E para este eu vou mastigar ou vou chamá-lo de tipo de cabelo. Então este é, por exemplo, o tipo de cabelo que o jogador pode escolher e a tela de personalização de personagem. E eu vou mudar a variável para morder. Então eu posso clicar em Controle e arrastá-lo para fora. Então esta é a minha variável y. Vou compilar para adicionar um valor a ele. E agora você pode ver aqui, este também é um número. E o que é um byte, é também um número sem decimais, mas este só pode conter até 255. Então 255 é aceito. Se eu for para 256, isso não é aceito. Você pode ver que ele muda automaticamente para 255. Então, este pode, por exemplo, ser usado para tipos de cabelo. Por exemplo, duvido que o jogo terá mais de 255 tipos. Então, para tipos de cabelo, eu
usaria, por exemplo, o byte em vez de um flutuador ou um inteiro. E isso também é porque você tem que priorizar o que você quer escolher para cada cenário em seu jogo. Porque byte está usando menos memória do que esses dois, porque é tão pequeno, hum, e assim você pode tentar otimizar seu jogo fazendo isso. Então, em vez de usar um flutuador para tudo, em vez de usar um inteiro para tudo que não tem casas decimais, você pode usar um byte se você, na verdade, se suas opções não tiverem mais de 255. Então, por exemplo, eu quero escolher o número de cabelo 56. E você pode ver, você pode imprimi-lo na tela novamente. Vou tirar isto daqui. Opa, eu vou tirar isso daqui. Podemos ver este. Vou clicar em Compilar e jogar. E você pode ver aqui ele exibe o número 56 que
temos escrito dentro da variável byte. Ok, então este é o número de variáveis que eu queria falar nesta lição. Então nós temos o byte, que é o número sem decimais, mas ele só pode conter até 255. Temos os pesos são a variável flutuante que pode conter casas decimais. E temos o inteiro que é um número que não pode conter casas decimais. Então isso é bom para usar para moedas, por exemplo, ou,
ou, ou pontos ou qualquer outra coisa, porque você realmente não precisa de decimais, quatro pontos, a menos que seus pontos dentro do seu jogo tenham decimais do que neste caso, você quer usar um flutuador em vez disso.
10. Boolean: O próximo tipo de variável é um booleano. E antes de falarmos sobre isso, na verdade você pode selecionar essas três variáveis diferentes que você criá-lo. E você pode clicar no botão CC no seu teclado. E isso criará um comentário. E eu vou escrever tipos de variáveis. E eu vou tentar colocar todas as variáveis aqui enquanto vamos. Então eu vou arrastar isso para baixo. Ok, então a próxima coisa é booleano, e você pode clicar aqui, criar uma nova variável. E podemos fazer um booleano chamado está morto. E para Booleans como boa prática, isso é feito em C mais, certo, para estar na frente de Boolean. Então sabemos que é um booleano. E eu vou executá-lo assim. Então B está morto. E eu vou mudar o tipo de variável para booleano, e eu vou arrastá-lo para fora e clique em Obter. Você pode ver aqui que B na verdade não é exibido mesmo que nós escrevemos b. Então esta é uma coisa secreta que podemos escrever, e nós sabemos que é um booleano. Então o que um booleano é, é um recipiente que contém informações que são verdadeiras ou falsas. Então, se compilarmos, podemos ver aqui, você pode pegar isso, pode ser verificado ou desmarcado. Então pode ser verdadeiro ou falso. Assim, por exemplo, como seu personagem segurando uma arma, ele pode dizer, nós podemos fazer uma variável chamada está segurando arma. E pode ser verdadeiro ou falso. Então, por exemplo, para este é o personagem que pode ser sim o personagem está morto ou não, os personagens estão mortos. Então isso é o que um booleano é. E, por exemplo, podemos ver aqui se eu conectá-lo a uma string ou à string de impressão que tínhamos anteriormente, ele irá convertê-lo em uma string. E se clicarmos em Jogar, você pode ver aqui agora que é falso. Isso é porque está desmarcada. E se eu clicar em escape e voltar, e se eu tomá-lo, compilar clique em Reproduzir, ele diz verdadeiro. Então este é um booleano. É ou contém informações que são verdadeiras ou falsas, e podemos usá-las para diferentes cenários. Então, por exemplo, é o meu jogador segurando uma arma porque talvez eu não quero que o jogador seja capaz de correr e o jogo se ele ou ela está segurando uma arma. Então eu estou verificando se o jogador, o jogador
está segurando uma arma? E se assim for, não quero que o jogador seja capaz de correr. O jogador está morto? Neste caso, então eu quero desativar todo o movimento, ou eu quero reiniciar o jogo ou o que quer que seja. Então isso é o que um booleano é.
11. Texto, de corda e nome: Então, os próximos dois ou três tipos de variáveis que queremos falar é a variável x e a variável string e a variável name. Então vamos em frente e criar uma variável de texto. E para este eu vou chamá-lo de jogo sobre mensagem. Então esta é uma mensagem que será exibida quando o jogador morrer, por exemplo. E eu vou chamá-lo de mudanças para uma variável de texto. Vou segurar o Controle e arrastá-lo para fora. E você pode ver aqui agora temos uma variável de texto. Temos que clicar em Compilar para adicionar um valor. E aqui no valor padrão, podemos adicionar um texto. Então, por exemplo, podemos dizer que você morreu ou algo assim. Então agora temos um texto e se eu me conectei à variável string e ele converte, ele irá compilar e reproduzir. Você pode dizer que diz que você pintou aqui para a esquerda. Ok, então esta é uma variável de texto. Agora, nós também podemos criar uma variável string. E para este, vamos chamá-lo de nome do servidor. E nós escolhemos o tipo de string. Podemos arrastá-lo para fora. E você pode ver aqui agora eu tenho uma variável string. Se eu compilar, uma string é também uma linha de texto e eu vou, Eu vou explicar para você em um pouco quais as diferenças embora nós cancelamos. Por exemplo, o nome do servidor, vamos chamá-lo apenas meu nome foi o primeiro servidor. Então este é o nome do meu servidor que você pode vê-lo quando você entrar no jogo. E deixa-me desligar isto. E quero arrastá-lo até aqui. E se você conectá-lo, você pode ver que ele realmente não está convertendo nada porque esta é uma string e esta é uma string também. Então não precisa converter nada. Então, podemos apenas conectá-lo diretamente e clicar em compilar e jogar. E você pode ver aqui que diz que a maioria de nós servidor, ok? E agora esta é uma string e a última antes de explicar a diferença entre estes dois, a última é uma variável de nome. Então, para este, por exemplo, podemos chamá-lo de nome de arma. E podemos escolher o nome Aqui, nome, tipo de variável. E vamos arrastá-lo para fora de novo. Clique em compilar. E você pode ver aqui, você pode escolher uma linha de texto novamente. Então, por exemplo, se for um atirador, eu tenho um AK 47. Ok, clique em compilar, conectado, ele irá convertê-lo em uma string, Compilar e salvar e clique em jogar. E você pode ver que diz AK 47. Ok, então estes são os textos, os tipos de variáveis, o, o texto, a string e o nome. E você pode ver que você pode escrever uma linha de código para cada um deles. Então, qual é a diferença entre estes três? Você pode escrever uma linha de código e todos eles. Qual é a diferença? A diferença é, ou para a variável de texto, esta usa mais memória, e esta é a média, esta é a memória baixa. E para a variável de texto, esta é localizável. Posso ver aqui se eu segurar o mouse sobre este texto, ele diz textos localizados. E o que é localização, você pode já saber, mas isso é quando você traduz uma linha de texto em outros idiomas. Então, por exemplo, se eu, se eu quiser meu jogo em inglês, mas eu também queria em alemão, eu também queria em chinês ou em japonês. Eu quero traduzir este jogo sobre mensagem para digitar chinês para dentro do meu jogo. E isso só pode ser feito se você tiver uma variável de texto, você não pode traduzir o, o, o mecanismo não será capaz de traduzir essas variáveis de string. Ele só pode traduzir as variáveis de texto. Então, quando você cria uma linha de texto e você quer seu jogo em diferentes idiomas, você tem que ter em mente, você
quer traduzir esta linha que você está prestes a escrever? E se sim, eu quero traduzi-lo, então vá em frente e faça uma variável de texto porque você não
pode traduzir esses outros para outros idiomas. E só para mostrar as horas, vamos rapidamente, isso não é sobre o material de tradução de localização dentro do painel de deslocalização. Aqui você pode ver aqui você tem o idioma Inglês e você pode adicionar mais idiomas e você pode traduzir para diferentes idiomas. E isso só pode ser feito para variáveis de texto, ok? A variável string. Você não pode traduzir isso. Isso não pode ser traduzido como a variável de texto, mas você pode escrever uma linha de código e isso pode ser usado para coisas que não serão traduzidas. Então, se você é um nome ou se seu jogo nunca vai ser traduzido, você também pode simplesmente usar uma string para escrever este jogo sobre mensagem. Você não tem que usar um texto se você não quer tradução. Portanto, esta é também uma linha de texto e isso não vai ser capaz de ser traduzido. E, por exemplo, um nome de servidor. Se você está jogando online, você realmente não quer traduzir o nome do meu servidor para outros idiomas, então não faz nenhum sentido. Então, para o nome do observador, eu estaria usando a variável string. E o último é o nome e nome estrangeiro. Este não pode ser traduzido. E também uma coisa boa de saber, essas duas variáveis podem ser manipuladas. Isto não pode ser manipulado. E quando eu encontro meu, o que eu quero dizer com isso é, por exemplo, se você arrastar para fora da string e você clicar em anexar, nós podemos realmente adicionar mais texto ao seu texto aqui. Então, por exemplo, se eu escrever dentro do append, deve sempre servidor, ele diz que a maioria de nós aqui. Por exemplo, se eu escrever o número 1, se eu conectei este pin à cadeia de impressão, apenas para que eu possa imprimi-lo e eu posso mostrar-lhe, eu clique em Reproduzir. Agora diz que a maioria de nós servidor número um. Assim, a variável textos e a variável string pode ser manipulada durante o jogo. Este não pode ser manipulado e este será único. Só se chamará 1847. E você realmente não tem algo que possa adicionar coisas a ele. Então este é, este é o que usa menos memória do que esses dois, e apenas usando essas quatro coisas únicas. Por exemplo, Meu nome da arma sempre permanecerá o mesmo, então eu nunca vou mudá-lo. Sempre se chamará AK 47. Então, para os nomes das armas, eu usaria essa variável. Além disso, por exemplo, você pode usá-lo se você tem conquistas em seu jogo e você quer uma idéia para essas conquistas. Então, por exemplo, se seu ID é um CH, por exemplo, para a realização 07, isso nunca vai mudar. Eu usaria IDs de conquista e usaria uma variável de nome para isso. Então, estas são as variáveis de texto. Você pode escrever texto e todos eles, mas estas são as principais diferenças para essas variáveis.
12. Vetor: Vamos em frente e criar uma variável vetorial. Então clique em criar nova variável. E para essa variável vetorial, vamos chamá-la de localização de cam. Então, por exemplo, se quisermos especificar a localização da câmera dentro do mundo. Então, mudando a variável tipo dois vetor e vamos segurar Controle e arrastá-lo para fora como em compilado para ver os valores padrão. E você pode ver que o vetor contém três números. Então aqui, se eu minimizar isso um pouco e ir para cá. Se você clicar na malha dentro do mundo e ver que o vetor contém esta informação e esta é, o vetor é normalmente usado para locais. Assim, por exemplo, podemos modificar a localização do solo, que são os três ou o número três números. Assim, por exemplo, uma fatwa, cem, cem, cem. Este pode ser o novo local para o terreno para que possamos modificá-lo através de código. Se eu clicar em Compilar e Salvar. E você também pode arrastá-lo aqui e imprimi-lo. E você pode ver se eu clicar em uma argila, ele renderiza os eixos x, y e z, que nós definimos para 104 para todos os três deles. Então, apenas para mostrar rapidamente, por exemplo, se clicarmos na malha de terra e, em seguida, vamos clicar com o botão direito do mouse dentro de nosso plano de nível. Podemos criar uma referência ao piso, que é aqui. E você pode arrastá-lo para fora e você pode
procurar o local ou ele pode realmente apenas o local certo. E você pode ver aqui estes são os diferentes nós que você pode editar. E queremos definir a localização do ator. E se eu desconectasse essa cadeia de impressão, e conectasse essa localização do ator. E se eu conectar este novo local, então agora em vez de localização CAM, podemos chamá-lo de Laura localização. Isso seria mais apropriado e podemos conectá-lo ao novo local. Então, agora, quando
começarmos o jogo, vamos definir este local para este novo local. Então, em vez de ser 000 20, vai ser
cem, cem e cem. Então, se
compilarmos, temos que lembrar de configurá-lo para móvel para que
possamos alterá-lo no jogo e clicar no jogo. E você pode ver aqui que na verdade é talvez seja melhor
colocar um atraso porque agora você nem sempre pode ver que ele mudou o local. Se eu arrastá-la até aqui e atrasar a viagem, isso atrasará o código ou uma quantidade de tempo, por exemplo, três segundos. E então ele vai tocar este cenário de ator local. Ok, então se eu clicar em Reproduzir, você pode ver aqui depois de três segundos. Na verdade, deixe-me minimizar isso para que possamos ver algo como em jogo. E depois de três segundos, vai mudar a localização como você vê aqui. Certo, então é para isso que podemos usar vetores.
13. Rotor: Uma variável rotisserie é usada para alterar a rotação de um item. Então vamos em frente e criar uma nova variável. E vamos chamar de lei para a rotação. E para este, vamos mudar o tipo de variável para rotador, e vamos segurar Controle e arrastá-lo para fora. E para este exemplo, vamos compilar primeiro. E você pode ver aqui estes contêm três números, e esta é na verdade a rotação. Então, se clicarmos em qualquer coisa, por exemplo, no chão, podemos mudar a rotação. Então estes são os três valores. E se quisermos editá-los dinamicamente dentro do jogo através desta variável, podemos clicar no chão, Clique com o mouse aqui no gráfico e clicar em Criar referência de piso, assim como na lição anterior. E vamos arrastar e digitar rotação. E você pode ver aqui que você pode definir a rotação do ator. Então vamos conectá-lo ao Begin Play. E para isso, vamos conectar a nova rotação. E agora está definido para 000, então nada vai acontecer. Mas digamos, por exemplo, o eixo x que queremos girar 20, o eixo y que queremos girar AT, e o z queremos girar 30. Ok? E vamos colocar um atraso para que possamos ver a diferença de antes e depois. Embora. Quando começarmos a jogar o jogo, depois de três segundos, gire a malha do chão. Ok, então vamos tentar organizá-lo um pouco. É sempre bom organizá-lo. E lembre-se que você pode usar C para comentar. Então, por exemplo, se você quiser vê-lo em todos eles e clique, Tudo bem, por exemplo, rotação do chão. Esta é uma boa prática. Se você tem um monte de código, é sempre bom ter essas coisas para baixo. Então eu posso clicar no comum também. Se você quiser mudar a cor do comentário, você é bem-vindo para fazer isso. Então, e se você quiser ir esta bolha no Zoom ou não. E se você quiser, por exemplo, mostrar a cor aqui e tudo isso. Então isso é bom para a organização. Vamos em frente e clique em Reproduzir. Então, depois de três segundos, esta malha floral girará, defendeu a rotação. Então é isso que um rotador é. Você pode usá-lo para girar, girar malhas.
14. Transformação: Então o último tipo de variável que eu quero falar agora é o tipo de variável de transformação. Então, se quisermos clicar ou criar uma nova variável, clique neste botão mais, e vamos chamar essa transformação de um piso. Então vamos mudar o tipo de variável para transformar e vamos compilar. Ele pode vê-la se você clicar na seta e a transformação é todos esses números diferentes. Assim, podemos alterar a localização, a rotação e a escala de um item. Então qualquer coisa que tenha localização, rotação e escala dentro de seu nível, podemos modificá-lo com isso. Então, para pressionar G, apenas para ver todos os ícones, podemos realmente modificar, por exemplo, a localização,
rotação e escala do Sol através desta variável de transformação. O mesmo acontece com a clarabóia, o mesmo acontece com a instância de início do jogador. E o mesmo vale para o chão. Então, por exemplo, vamos fazê-lo no chão. Podemos mudar os três números ao mesmo tempo. Então, por exemplo, minha localização deve ser 100, 100, 100. Minha rotação não deve ser 2050, 2080. Na verdade, são apenas números aleatórios, e eu vou escalá-lo. Vamos reduzi-lo para 0,50,50.5. Ok, e vamos arrastar para fora a transformação e vamos compilar e salvar. Certo, então aqui podemos mudar a transformação da Flórida. Então, se eu clicar no chão, e se eu abrir meu visualizador com o botão direito do mouse e criar uma referência para o chão, eu vou arrastá-lo para fora e você pode escrever transformação. Então, como você pode ver, a maneira mais fácil de procurar por coisas se você é novo no motor ou novo em blueprints, você pode apenas escrever o que você quer fazer com este andar. Por exemplo, se você quiser girá-lo, você pode escrever rotação está aqui. Você pode obter a rotação real. Você pode definir a rotação. Se você quiser obter a localização, você pode apenas escrever localização e você pode ver aqui disse localização ator. Então esta é uma boa maneira de procurar coisas se você não sabe como eles são chamados, ganhou 100 por cento. Então, para exame para a transformação, vamos escrever transformar. E você pode ver aqui que você pode definir a transformação do ator. Então vamos conectá-lo e vamos conectar a transformação do chão dentro da nova transformação. Compilar. E vamos clicar em reproduzir antes que as listas de reprodução atrasem por três segundos. Então você pode ver que há uma diferença de antes e depois. Então, quando começarmos a jogar, aguarde três segundos e, em seguida, inicie este código. Ok, então deixe-me organizar isso um pouco e compilar, e vamos clicar em Colocar. Você pode ver são depois de três segundos, ele vai mudar sua transformação desta malha. Então esta é a variável de transformação e é muito útil. E também pode ser usado em câmeras porque as câmeras também são esses valores de transformação. Portanto, esta é uma grande variável para usar para alterar as transformações de itens.
15. Operadores variáveis: Está na hora de falar sobre os operadores variáveis. Então estas são as quatro variáveis operadores que temos. E o que um operador
é, é que podemos fazer adição, subtração, multiplicação e divisão. Então, por exemplo, vamos usar a quantidade de variáveis
moedas que temos isso como a variável inteira. Então, vou deixar isto estar aqui. Então eu vou arrastar um novo aqui. E assim podemos usá-lo no código. E, por exemplo, a quantidade de código que podemos arrastar o pino para fora. E para encontrar os operadores variáveis, você pode escrever mais 2, encontrar a adição, ou escrever menos 2, subtrair divisão de direitos para dividir e escrever sua estrela para multiplicação. Então, por exemplo de r, r mais e eu clicar sobre isso. Agora podemos adicionar um número. Por exemplo, aqui dissemos a quantidade de moedas para 200. E podemos adicionar um, por exemplo, digamos 100, então chega a 300. E nós podemos realmente imprimi-lo na tela,
tela através da cadeia de impressão conectada. E podemos compilar e clicar em Play. Você pode ver aqui que ele está exibindo 300. Ok, então é assim que usamos operadores e você pode realmente usar múltiplos. Então, por exemplo, podemos dizer 200 mais 100 e isso é 300. Então queremos dividi-lo por três. Então agora ele vai se tornar 100. E podemos conectá-lo e clicar em compilar e jogar. E você pode ver aqui que diz 100. E se você perdeu, podemos apenas fazer este tempo mais longo, compilar e jogar. E você pode ver que diz 100 anos para o canto superior esquerdo. Então estes são os operadores. Você pode usá-los para mais, menos, multiplicar e dividir. E pode fazer quantos você quiser. Isto pode, naturalmente, ser usado para o número de variáveis. Então, por exemplo, se quiséssemos usar um float em vez disso, ou queremos usar um byte em vez disso. Então vamos usar o carro alegórico. Você pode ver se eu arrastar o carro alegórico, eu posso dizer dividir por 5. Você pode ver aqui eles têm cores diferentes e isso é porque esta cor é para inteiros, esta cor verde claro é para carros alegóricos e assim por diante. Assim, você pode ver as cores diferentes ou você pode ver os diferentes tipos de variáveis através das cores. E novamente, isso exibirá o número do resultado se eu conectar isso à string. E então agora ele vai exibir essa carga para a corda, nosso ouvido para a cadeia de impressão compilando. E você pode ver aqui é 15.16 porque está dividindo o 75, 0.85.
16. Galhos e condicionamento: A próxima coisa são os ramos e condicionamento. E esses condicionadores de condicionamento são, na verdade, operadores variáveis, mas estes vão matar uma condição e vamos falar sobre isso agora. Então este é o nó de ramificação e o que um nó de ramificação é, você lhe dá uma condição. E então, se for verdade, ele fará esse código. Se for falso, ele fará este código. Ok, então vamos tentar usá-lo para acessar facilmente a filial. Basta clicar em B e clicar no gráfico. Então segure o bico, olhe no gráfico. Isso criará uma ramificação, um nó de ramificação. Ou você pode clicar com o botão direito
e escrever B. E você pode ver aqui ramo, você pode selecioná-lo. Então este é o nó da ramificação, e podemos dar-lhe aqui um booleano. Você pode ver que o vermelho é um booleano, então algo é verdadeiro ou falso. Se for verdade, ele fará este código. Se for falso, fará isso. Então, por exemplo, vamos tentar pegar a quantidade de moedas. Vamos arrastá-lo para fora. Digamos mais 50 ou qual é o seu anúncio? E foi fazer 15. Ok? E digamos, vamos usar um desses condicionadores. Assim, por exemplo, podemos usar é maior. É este número é neste número de resultado maior do que, digamos 300. E podemos conectá-lo à filial. Então vamos antes de continuar, vamos ver o que está acontecendo. Então nós temos a quantidade de moedas e nós definimos para 200. Estamos agora a adicionar 50 às 200 moedas que temos. Então agora o resultado é 250. Então o 250 que estamos pedindo é 250, este número
é maior que este número é 250 maior que 300? Isto é verdade? Agora, obviamente isso é falso porque 250 não é maior que 300. Então isso vai ser falso e vai jogar este código. Assim, por exemplo, como desconectado por tilintar Alt e sob caneta execução. E deixe-me conectar isso aqui e eu vou criar outra cadeia de impressão. E, por exemplo, isto aqui, isto é verdade. Ou vamos tentar. Vamos escrever que isto é falso. Ok, então agora ele vai jogar o falso ímpio. E lembre-se de conectar a filial aqui. Ok? Vou organizar um pouco as coisas. Está bem. Então ele vai perguntar, é, é, é 200, 200 mais 50, isso é 250, isso é maior que 300? Obviamente não é, então ele vai dizer que isso é falso. Ok, então vamos jogar o jogo e ver o que ele está dizendo. E, na verdade, eu quero fazer 10 segundos só para que possamos ter a chance de vê-lo. Assim como este. Certo, e vamos brincar. E você pode ver aqui ele diz que isso é falso porque 250 não é maior que 300. No entanto, se nós, digamos, se dissemos antes das nove, então é 250 maior que 2, 4, 9, isso é verdade? E isso é verdade. Ok, então é assim que o condicionamento funciona e você pode ver que você pode usar tudo isso. Então, por exemplo, isso não é igual. Podemos usar isto. Por isso, aqui eu queria apagar este. E assim podemos surgir não iguais, e podemos obter este operador. E, por exemplo, podemos escrever um número estava certo, 600 e conectado. E agora estamos dizendo para um 100 mais 50, é 250. Este resultado que é 250, se é, não é igual a 600? E agora é verdade, sim, não
é igual a 600. Então ele vai tocar esta mensagem. Agora vamos compilar, salvar e clicar em Reproduzir. E você pode ver aqui que diz que isso é verdade, não são 600. Então, por exemplo, se estamos em 250, agora está dizendo 250, não
é igual a este número que é 250? E agora é falso porque é igual a 250. Então, se clicarmos em Reproduzir, você pode ver agora ele diz que isso é falso. Então é assim que você usa condicionadores e ramos. Isso é muito importante porque você usá-lo em quase todos os códigos ou realmente usá-lo Yan quase tudo. Tão importante para entender este conceito. E estes também são chamados de operadores variáveis, mas estes têm condições, e é por isso que eles também são chamados condicionadores. E assim eles têm uma condição que retorna verdadeiro ou falso. E podemos lançar um código a partir daí.
17. Obter e definir: Ok, então agora nós queremos falar sobre definir as variáveis. Então, até agora temos a variável. Portanto, se você arrastar uma variável, você pode escolher entre obter a variável ou definir a variável. Então, até agora temos clicado em obter a variável e agora temos usado assim. Mas você também pode definir a variável. Então, se você arrastá-lo e clicar em Definir, novamente, defina-o para um número específico durante o código. E você pode fazer o mesmo com todas as outras coisas que você pode ver aqui que eu listei ou arrastei todas elas para dentro daqui. E você pode ver, você pode definir todas as variáveis. Você pode arrastá-los para fora e clicar em Definir, ou você pode segurar Alt e arrastá-los para fora e colocá-lo. Vamos configurá-lo automaticamente. Então manter o controle e colocá-lo dentro do gráfico irá mantê-lo segurando Alt e colocá-lo em, colocar, colocá-lo no gráfico de eventos, conjunto completo ele. Ok, então vamos tentar usá-lo. Faria o peso. Então eu vou segurar Alt e arrastar o peso. E vamos ver aqui a quantidade de moedas que dissemos é 200. Então eu vou dizer que o sinal maior e é, é 200. Ou como a quantidade de moedas maior que 300. E vamos fazer um ramo. E vamos ligar essa. Então, se a quantidade de moedas for maior que 300, podemos definir o peso, por exemplo, da mochila que o jogador está segurando. Podemos configurá-lo para, digamos, 20 kg gramas. Se pudermos copiar, colá-lo. Se for menor que 300 ou se não for maior que 300, podemos definir o caminho para 10, por exemplo. Então é assim que você define as variáveis em vez de apenas ir dentro daqui e configurá-lo para um número específico, você pode realmente configurá-lo dentro do código dependendo do que está acontecendo. Então podemos fazer isso com tudo. Vamos compilar. E vamos ver aqui, vamos querer jogar e ver o valor. Mas agora não podemos ver o valor porque não estamos imprimindo uma string. Então eu vou imprimir uma corda e eu vou conectá-la. E assim ele é exibido na tela e podemos ver o que está acontecendo. Vou fazer o mesmo aqui em baixo. E vamos clicar em Compilar. Vou aumentar o tempo para 10, então temos a chance de ver a mensagem. Ok, e vamos clicar em compilar e jogar. E você pode ver aqui agora é, o peso é 10 porque porque 200 não é maior que 300. Ok, então isso é falso, não é maior. Se eu dissesse desta forma para ver 100. Assim é a quantidade de moedas maior que 100 anos, isso é verdade. Então o peso será de 20. E agora, se batermos no Play, você pode ver que o peso é 20. Então é assim que você define variáveis e exemplo de usos. Por exemplo, se a saúde do jogador é 0, podemos, podemos definir a variável é que para ser verdadeiro se o jogador está morto, ou seja, sua saúde é 0. Ou se a saúde não for 0, podemos configurá-la para não morta lá. mesmo acontece com a quantidade de moedas. Podemos configurá-lo, por exemplo, o jogador, o jogador entra em uma moeda. Então podemos definir a quantidade de moedas para o valor que você recebe por pegar essa moeda. Ou você pode, por exemplo, usar mais para adicioná-lo. Você também pode escrever mais. Isso irá adicioná-lo uma vez. Então, podemos ver aqui ele diz adicionar 1 ao valor especificado, em seguida, defini-lo. Então isso é realmente definir. Se quisermos usar este em vez disso, podemos mais, mais seria um. Por exemplo, se você entrar na moeda, você recebe mais um. E este novo valor. Deixe-me apagar aqui para não confundi-lo muito. Então, se você, se você andar em uma moeda, você pode tomar a quantidade de moedas eram apenas para 100 e mais com um. Não, agora você tem 201 moedas, mas você tem que configurá-lo para este valor para o novo valor. Então agora o novo montante é realmente 201. Então, se tentarmos imprimir esta mensagem ou essa quantidade de moedas, você verá que a quantidade de moedas é agora duzentos e um. Cento e um. Está bem? Então é isso que os centros são para esses outros. Estes são os getters. Então você recebe a quantidade e a celulose que você disse a quantidade durante o jogo.
18. Exemplo de variáveis: Ok, então agora vamos em frente e dar uma olhada em um exemplo de como podemos usar o que aprendemos até agora com variáveis. Então vamos dizer que o jogador a vai mais e saquear uma moeda e você quer verificar se há. Em primeiro lugar, se o jogador tem uma mochila para o declínio loop. E em segundo lugar, se houver espaço suficiente
nesta mochila para carregar as moedas que o jogador está saqueando. E, em seguida, quando o jogador tem carregado, a mochila, você vai exibir uma mensagem para a tela. Então, para fazer isso, queremos primeiro verificar se o jogador tem uma mochila. Então, para fazer isso, criamos um booleano porque um booleano retorna um valor de true ou false. Criar um booleano chamado tem mochila. E seguramos o Controle e arrastamos para fora. Agora, agora temos isso e arrastamos esta caneta e clique em B para fazer um ramo. Agora temos uma filial. Ok? Então, antes de fazermos qualquer coisa, você primeiro verifica quando você começa o jogo, se o jogador tem uma mochila? E se você compilar agora é falso, não, o player não tem uma mochila. Este é o valor padrão. E vamos ver se o jogador não tem uma mochila, queremos exibir uma mensagem de que você não pode olhar a moeda, mas você precisa de uma mochila primeiro. E vamos fazer uma nova variável. E vamos chamá-lo, podemos chamá-lo de mensagem de aviso. E vamos torná-lo uma variável de texto. E este aviso surto med, queremos configurá-lo, então segure Alt e arrastá-lo para fora. E aqui nós podemos definir a mensagem e eu vou configurá-la para, você não tem uma mochila aqui. Ok? E nós podemos conectá-lo, e vamos imprimi-lo para a tela para que possamos realmente vê-lo quando clicamos em jogar no jogo. E vamos chegar a 10 segundos. Mudaria essa cor. E isso está conectado ao nó da cadeia de impressão. Ok, então agora o jogador não tem uma mochila, então ele vai voltar. Então diz: “Você tem uma mochila? Não, eu não sei. Então você não tem uma mochila. Esta é a mensagem que será exibida. Mas digamos que isso é verdade. O jogador tem uma mochila. Então agora ele vai jogar este código em vez disso. E se o jogador tiver uma mochila, adicione as moedas aludidas. Certo, então lidere, isso é bom. A quantidade de moedas. Vamos ver o jogador quando andou duas mais de cinco moedas. Então vamos dizer mais e cinco. Assim, o jogador tem 200 moedas para começar. E agora o jogador aludiu cinco. Então agora está em 205 moedas. Então vamos pegar este plasmídeo com cinco e vamos definir a nova quantidade de moedas. Você segura Alt e arrasta para fora. Vamos definir a nova quantidade de moedas para 105 agora. E vamos realmente conectados aqui. Normalmente eu defino assim, basta usar o espaço para que o código não fique muito longo. E agora diz que a quantidade de moedas mais cinco, é 205. Agora dissemos que a nova quantidade de moedas. Então agora esta variável é 205 não é 200 mais como mostrado aqui. Certo, agora temos 205 moedas. A próxima coisa é, queremos perguntar se há espaço
na mochila antes de adicioná-la ou antes de colocá-la dentro da mochila. Então agora eu vou fazer uma nova variável. E felizmente não precisamos fazer uma nova variável. Podemos apenas dizer, é isso. Digamos que temos duas mochilas, então crie uma nova variável, e isso é um inteiro. E podemos chamar-lhe número de mochilas. Digamos que temos duas mochilas. Então, podemos compilar e disse que há valor para dois. Ok? E agora temos esse número de mochilas e também temos essa quantidade de moedas. Então esta quantidade de moedas, digamos que dividimos as moedas igualmente nestas duas mochilas. Então eu vou dividir a quantidade de moedas com a quantidade de mochilas. Então agora temos 205 moedas e está dividida entre estas duas mochilas. Ok? E agora digamos que se esse número, é maior do que, digamos, 200, há 200 moedas em cada mochila? Então está cheio. Se tivermos 200 moedas em cada saco, saco, então está cheio. Ok. Então agora vamos perguntar, isso
é verdade ou não? Vamos ligar este. Ok? E tudo bem, agora temos este código. Vamos tentar executá-lo para não ficar confusos. Então começamos o jogo. Pergunta se o jogador tem uma mochila ou não. Neste caso, temos multado. Então é verdade que o jogador tem uma mochila. Vamos jogar este código. E aqui você está adicionando os cinco, corroendo as cinco moedas para a quantidade de moedas. Então agora, em vez de ter 200 moedas nesta variável, você agora tem 205. Então agora você está perguntando é o número de moedas que é agora 205. E este, você está dividindo-o com o número de mochilas. Então agora você tem, você tem cerca de 102 em cada mochila. E agora você está perguntando, você tem 200 moedas em cada saco de volta, obviamente você não tem apenas cerca de 102 em cada mochila. Então não, você não tem você não tem essa quantidade de moedas para que você possa realmente carregá-lo. Ok? Então agora eu quero enviar esta mensagem por não o jogo acabou, desculpe, as notas como mensagem. Então, se eu segurar Alt e arrastá-lo para fora e dizer, você tem espaço suficiente ou assim, isso é falso. E para não ficar confuso porque eu acho que quando você lê o código, é melhor dizer verdade, como sim, você tem espaço. Às vezes, fica confuso. Então aqui eu estou realmente indo para não escrever. E isso é usado para booleanos. Então, o que ele diz é, se você dividir a quantidade de moedas, que é 205 agora, com a quantidade de número de mochilas, que agora é 102. Se isso não for maior que 200, sim, este não é um maior do que você tem espaço suficiente. Isto é realmente muito mais fácil de ler do que o, do que se não tivéssemos este não componente. Então, esse número é maior que 200? Mas agora estamos dizendo, se esse número não for maior que 200 anos, isso é verdade. Ainda não temos 200. Então você tem espaço suficiente. E se for falso, você não tem espaço. Então você diz que não tem espaço suficiente. Ok? E queremos imprimir isso na tela. Então eu vou escrever quando string. E nós podemos copiar este aqui e colá-lo duas vezes. E você economizará tempo copiando código. E você pode imprimi-lo para a tela. Ok, então assim, e agora este pode ser o exemplo. Agora temos uma mochila. Na verdade, temos espaço porque não temos 200 moedas em cada mochila. Então isso deve jogar esta parte do código para corrigir rápido salvar, compilar, salvar, Salvar tudo, e clicar em jogar. Diz que tem espaço suficiente. Ok? E se não tivéssemos uma mochila, se eu não tivesse seguro. Agora, se clicarmos no jogo, diz que você ainda não tem um saco de volta. Ok, então se eu tiver uma mochila, mas eu só tenho espaço para 100 moedas em cada mochila. Lembre-se que temos 102 moedas em cada mochila. Então, para clicar em Reproduzir, ele diz, você não tem espaço suficiente. Ok? Então é assim que você usa variáveis. Você pode, você pode obter as quantias. Você pode colocá-lo com um número. Por exemplo, você pode definir o novo valor para o número específico que você tem. Você pode definir mensagens para dependendo de quais são os eventos. E você pode imprimir isso na tela, é claro. E lembre-se de organizar o código. E você pode realmente também comentar sobre o código. Então, por exemplo, isso, você pode vir e fazer isso e não escrever nenhuma mochila. Por exemplo. Você pode vir nesta parte do código e diz, por exemplo, esta parte do código. Se eu, por exemplo, arrastá-lo até aqui. E eu comentei e disse, Cheques, mochila está cheia. Ok? E isso é realmente muito conveniente para outros programadores. Então, se você tiver outro programador ou no futuro seis meses depois, você quer olhar para o seu código. É muito mais fácil ver os comentários no seu código. E porque depois de seis meses você provavelmente esqueceu o que fez aqui. E é muito fácil entrar e ler o comentário. Tudo bem, espero que não seja confuso e se precisar de ajuda,
se algo estiver confuso para você,
você sempre pode escrever um comentário para mim e eu
responderei ou você pode escrever no servidor do Discord e eu responderei também. Também pode olhar para as mídias sociais para digitar entretenimento
forjado no Facebook ou Twitter ou Instagram. E eu também responderei lá. Obrigado por assistir e vamos para a próxima lição.
20. Eventos: Ok, então vamos falar sobre eventos. Eu excluí tudo no gráfico e para fazer o evento e o início do jogo que usamos até agora, você pode apenas experimentá-lo. Comece a jogar. O que você pode fazer também, se você quiser encontrar os eventos,
você pode clicar com o botão direito do mouse e escrever eventos. E você pode ver aqui que você tem todos esses eventos diferentes que você pode adicionar. E eles têm uma pequena flecha para o lado. Ok? Então agora nós usamos o jogo inicial. E se você clicar nele, um evento será criado. Os eventos são de cor vermelha. Então, se você vir algo que já está em cores, este é um evento. Ok, então eventos são necessários
eventos para direcionar código. Então, sem eventos, você não pode realmente dirigir nenhum código. Então, por exemplo, o anião clássico que usamos, se mudarmos a localização da Flórida que temos. E não se preocupe, vou usar exemplos mais avançados e
avançados mais tarde. Eu só quero explicar os fundamentos também. Então, se mudarmos a localização do piso e adicionarmos isso, essa variável vetorial que fizemos anteriormente. Então agora temos uma função e ela está conectada ao evento. E talvez queiramos imprimir uma mensagem mais tarde depois de mudarmos a localização e dizemos: “
Legal, mudamos a localização do piso”. Ok? Então, se este evento não estiver aqui, se estiver desconectado
e, a propósito, você pode desconectar pressionando Alt e clicando no pino de execução. Então agora está desconectado. E se, se não, se nenhum evento estiver conectado, Isso nunca será executado. Então, agora, se eu clicar em Jogar, nada vai realmente acontecer porque nada é, você não está dizendo ao jogo o que fazer quando ele começa a jogar o jogo. Então você tem que conectá-lo a um evento para que ele possa jogar. E isto, isto é para tudo, está bem? Você tem que ter um evento ou algo para acontecer. Agora há outros eventos. Então o próximo é o tique-taque do evento. E o tique-taque do evento é um pouco perigoso. Mas ele está lá e os eventos AIC é chamado cada quadro único. Então ele irá executar o seu código 60 vezes por segundo. E isso é muito perigoso porque ele vai destruir a otimização do seu jogo se você não tiver cuidado. Por isso, ele vai fazer a sua perna jogo se você não tiver
cuidado, cuidado e se você usá-lo o tempo todo. E o que eu vou dizer é tentar nunca usar isso a menos que você realmente, realmente, realmente precisa usar. Então tente não usá-lo. Tente não usá-lo. Só faça se for preciso. Mas eu vou mostrar-lhe o que acontece se eu imprimir uma corda e jogar saída. Você pode ver aqui ele está realmente tocando 60 vezes por segundo. Ok? Então isso é o que um, que é o tique-taque do evento. E vamos para os próximos. Por exemplo, temos o ator começar sobreposição e temos o e se o seu fim se sobrepõe. Então isso é o que acontece quando você começa a se sobrepor. E você pode ver que isso está com o chão agora porque eu selecionei o piso na janela de exibição. E se eu clicar com o botão direito do mouse, eu posso realmente ver aqui no evento para andar. Se você clicar nele e você pode escolher esses diferentes eventos, por exemplo, colisão, você pode encontrar estes começam sobreposição e sobreposição aqui. Então, o que acontece quando você começa a se sobrepor com o chão? O que acontece quando terminar de se sobrepor ao chão? Então estes são eventos, estes também são vermelhos. A próxima coisa que eu quero falar sobre um muito importante e você vai, você estará usando isso o tempo todo, é criar seus eventos personalizados. Então, se você clicar com o botão direito do mouse e escrever personalizado, você pode ver aqui que você pode clicar em adicionar evento personalizado. Se você clicar nisso, você pode dar o nome do fornecedor. Por exemplo, vou chamá-lo de moedas. Então talvez queiramos usar este evento para quando o jogador caminha sobre uma moeda. Queremos adicionar moedas a esta variável chamada quantidade de moedas, que é um inteiro que fizemos anteriormente. Então, o que eu vou fazer é arrastar isso para fora enquanto segura o Controle, eu vou soltar. Então ele está recebendo esta variável e este está definido para 200 moedas agora como um valor padrão. Então o que eu vou fazer é, por exemplo, vamos fingir que o jogador anda por cima de uma moeda e isso vai dar-lhe cinco moedas. Então escrevendo mais para adicionar, e eu vou adicionar cinco moedas. E agora temos que definir a nova quantidade para esta variável. Então, se você segurar Alt gota e colocá-lo para baixo para que ele define a variável. Agora você pode conectar essa nova quantidade para definir a variável. Então agora é na verdade 205 em vez de 200. Ok, então agora você adicionou moedas. E vamos apagar isso por enquanto. Ok, então se você clicar em Reproduzir agora lembre-se, este é o evento de início do jogo. Isto é o que vai acontecer quando você começar a jogar o jogo. E agora, nada está acontecendo porque você não disse ao seu primeiro jogo para jogar isso. Isto não está a ser executado em lado nenhum. Ok, então para executar este código, você tem que chamá-lo em algum lugar. Então isso é chamado de chamar o evento. Então você tem que chamá-lo. E para chamá-lo, você pode apenas escrever o nome do evento. Então agora eu estou chamando isso no início da jogada, eu estou dizendo ao jogo, quando você começar a jogar o jogo,
por favor, vá até este evento e execute o código. Então adicione em moedas, ele vai para baixo para adicionar moedas. E ele vai executar este evento. Ele irá adicionar cinco moedas à minha variável e, em seguida, configurá-lo. Ok, então eu posso clicar em Reproduzir e você pode ver nada é exibido o que ele realmente está funcionando. Mas isso é porque não estamos imprimindo na tela, não
podemos ver nada. Então, só para ver que está realmente funcionando. Vamos tentar escrever string e vamos conectá-los. E agora vamos compilar, salvar e jogar. E você pode ver aqui que diz 205 em vez de 200. Então este código está realmente funcionando agora. Então lembre-se, você tem que chamar o evento para que ele funcione. Isso está sempre funcionando porque esse é o evento padrão. Ele sempre será executado quando você jogar, começar a jogar o jogo. E quando ele jogou começou a jogar o jogo, dissemos ao computador ou ao jogo que você deveria ir a este evento e executar o código. E podemos fazer isso quantas vezes quisermos. Talvez eu queira fazer outro evento personalizado e eu vou chamá-lo de mensagem de moedas. E com este evento eu realmente quero imprimir esta mensagem. Então eu não quero imprimir nada aqui em cima porque eu só quero adicionar moedas aqui em cima. Mas aqui em baixo eu quero imprimir uma mensagem e eu quero imprimir a quantidade que eu carrego. Então, para fazer isso, pegue a quantidade de moedas novamente e você pode segurá-la e conectada à corda. Então agora o que você vai ver é que agora nós começamos a jogar o jogo. Você está dizendo ao jogo para ir para Adicionar moedas, como você está chamando este evento. Você está adicionando moedas a esta variável e definindo-a. Mas agora você tem que chamar este evento 2 porque o jogo realmente não sabe quando jogar este IP e você não disse a ele em qualquer lugar foi para executar. Então, para fazer isso, mais logicamente, é depois disso quando você adiciona as moedas, eu quero tocar uma mensagem. Vou chamar esta mensagem de pontos de evento. Este é o evento. Então agora, depois de adicionar as moedas, ele vai descer para este, para este evento, e ele vai imprimir uma corda. Ok, então vamos colocá-los aqui um pouco juntos. E vamos compilar salvar. E agora podemos clicar em Jogar. E você pode ver que diz 205. Então esse fluxo está funcionando. Está indo até aqui. Agora é assim que você faz eventos personalizados e isso será usado o tempo todo. E lembre-se de chamar o evento senão nada vai acontecer.
21. Funções: Agora que temos uma melhor compreensão dos eventos, Vamos falar mais sobre funções. Então, até agora temos usado algumas funções. Por exemplo, a string de impressão. Esta é uma função que chamamos de referência ao nosso andar. E aqui nós escrevemos, por exemplo, que a localização do ator e esta é uma função. Duas funções são as que estão conectadas a eventos. E essas funções são as que fazem algum tipo de comportamento dentro de seu jogo. Agora, por exemplo, você está imprimindo uma string na tela ou você está alterando a localização da Flórida que você tem. Então você pode ver que estas são funções podem ser F aqui em cima. Diz F, Esta é uma função. E essas funções podem ser encontradas se você clicar com o botão direito do mouse e você pode ver aqui todos esses drop-down, você pode soltar um deles para baixo e ver que há um monte de funções aqui. Ok? Então você pode ver algumas das funções são azuis e algumas de suas funções são verdes. Então, há uma ligeira diferença entre essas funções. Ok? Então, por exemplo, vamos pegar o nosso clássico, o local real definido. Então nós podemos realmente obter um verde dele. E eu vou te mostrar o que é isso. Então, Phi localização certa. E eu rolo para baixo. Você pode ver que eu posso realmente escolher isso, obter localização real, isso é verde, ou eu posso escolher Definir local ator, que é azul. E os verdes são os que obtêm informações, que os azuis são os que definem informações. Então o que isso significa é que se você clicar no verde, isso é realmente obter a localização da flora. Então agora eu estou recebendo a localização do andar onde ele está atualmente no mundo. Enquanto os azuis são os que definem o local. Então, se quisermos mudar a localização do piso, vou usar o azul. Queremos definir o local para um novo local. Mas se eu simplesmente quiser a localização do piso no mundo, eu escolherei este verde e obter a localização exata. Então as funções verdes são as que obtêm informações e as azuis são as que definem informações. Funções também têm entradas e valores de retorno. Então estas são as entradas e estes são os valores de retorno. Assim, por exemplo, para esta entrada, você pode ver que temos deslocamento e podemos sempre fazer um vetor, uma variável vetorial, e podemos arrastá-lo para fora e conectado a esta entrada. Então agora este novo local que o piso terá é esta variável que definimos aqui. Então essas são entradas e isso é o que as funções têm. Eles também podem ter valores de retorno. Então, por exemplo, aqui, eu recebo a localização do piso e quando eu dou a localização, então agora este é o local do chão. Agora posso fazer coisas com ele. Então este é o valor de retorno. Ele está retornando o valor do piso onde ele está atualmente, onde o local está atualmente. E, por exemplo, isso também pode ser feito com a rotação. Para que possamos obter a rotação real. E agora eu posso fazer algo com esta rotação atual do chão. Ok, a última coisa que eu quero mostrar quatro funções que você pode realmente fazer suas próprias funções. Vamos voltar para cá. E digamos que queremos fazer nossa própria função aqui. Então o que você pode fazer é, na verdade, você pode marcar todo o óleo, todos os nós que você deseja incluir na função. E você pode clicar com o botão direito do mouse e clicar em recolher para funcionar. Então agora você fez sua própria função e você pode chamá-lo, eu vou dar-lhe um nome, dar-lhe algo lógico que você vai se lembrar de presença dez dias depois. Então, por exemplo, definir a localização do chão. Isto é o que está a fazer. Então agora temos uma nova função e isso é chamado Set chão localização eo que fizemos. Agora, se você clicar duas vezes em gets, você entra na função e você pode ver o que ela está realmente fazendo. Então agora ele recolhe o código R em uma nova função. E esta é uma ótima maneira de limpar o código. Então lembre-se, quando você está criando um jogo, seu código pode ser Pilbara super longo. E você realmente não quer que seja tanto tempo. Lembre-se de colapsar as coisas para funções. É assim que se limpa o código. Então, por exemplo, este, se você quiser, se você quiser mudar a localização de algo e o código é muito longo, você pode simplesmente recolhê-lo para uma função e chamá-lo set floor location, por exemplo. Agora você pode acessar essas funções. Você se fez para a esquerda. Por aqui. Dentro da guia de funções, você pode ver o local do chão definido e você pode clicar duas vezes nele para acessá-lo, bem
como clicar duas vezes nele aqui no Gráfico de Eventos. Agora, para usar essas funções várias vezes, você pode apenas, e deixe-me apenas excluir este e mostrar a você. Você pode simplesmente arrastá-lo para fora e colocá-lo e você pode conectá-lo. Então agora eu posso usar essa função. E isso é muito legal porque você pode usá-lo em vários eventos. Então vamos dizer que eu criei outro, outro evento e eu chamo isso de localização no chão. Andar a localização. Isso é realmente algo que eu já chamei de variável aqui. Então deixe-me ligar para os locais só por agora. E deixe-me compilar e salvar. E deixe-me, digamos que queremos usar isso de novo. Então eu posso realmente arrastar esta função para fora e conectado aqui para baixo. Então, isso é fácil de acessar. Isto é muito fixe. Em vez de apenas ir em cópia colar este código várias vezes, eu posso apenas fazer uma função e eu posso usá-lo várias vezes. Agora, vou mostrar-lhe mais tarde como podemos usar isto de uma forma mais prática. Como se estivéssemos fazendo um jogo e como ele vai ser usado. Mas antes de terminarmos este vídeo, eu quero falar sobre esses, essas entradas e também quando nós retornamos nós. Então, por exemplo, esta função aqui, você pode ver que tem um monte de entradas e tem um par de nós de retorno que podemos usar. E isso, isso é, isso é algo que podemos adicionar à nossa função se você quiser. Então agora temos, temos este nó, o nó inicial, e também podemos fazer uma nota final, e isso é chamado de nó de retorno. Agora, se eu fizer uma nota escrita como
esta, isso é realmente o mesmo como se não houvesse nada. Então, às vezes ou na maioria das vezes eu realmente faço isso porque ele só parece mais limpo ter um nó de retorno. Não significa nada tê-lo sem nada. Mas só limpa o código. Mas se você quiser quaisquer saídas como valores de retorno e entradas, você pode fazer isso clicando no nó retornado ou no nó inicial. E você pode adicionar variáveis aqui. Então o que você pode fazer aqui é se você clicar no Plus, ele irá adicionar uma variável, assim como se você adicionou variáveis aqui, você pode adicionar variáveis a funções. Então agora eu adiciono uma variável e digamos que eu quero retornar este valor de localização de piso aqui. Então eu crio uma nova variável. Chamo-lhe localização mais baixa, por exemplo. Há algo que faz sentido e eu posso escolher o tipo de variável. E, neste caso, este é um vetor. Então eu vou escolher vetor que é, que já está lá. Então eu vou conectar minha localização chão que o nó retornado. E agora se eu compilar e salvar e voltar para o meu gráfico de eventos, você pode ver aqui agora nós temos um nó de retorno. Agora podemos usar este lugar aqui fora e fazer coisas com ele. Ok? Então, este é um protocolo que é como você usa as variáveis de adição para funções e fazer nós de retorno. E a mesma coisa. Se você quiser uma entrada, você pode adicionar entradas aqui, variáveis dois. E digamos, por exemplo, a entrada deve ser algum tipo de texto. E o texto deve ser chamado de mensagem. Apenas algo aleatório. Eu só quero te mostrar. E você pode ver aqui agora nós realmente temos uma mensagem de entrada e nós podemos dizer, Yay, você muda a localização. E isso não faz sentido por enquanto. Eu só quero mostrar a vocês como fazer entradas e retornar nós. Então é assim que se faz. Você pode adicionar variáveis a funções. E não se preocupe se for muito complicado agora. Você não precisa se lembrar disso por enquanto. Nas lições posteriores, vamos aprofundar isso. Eu só quero mostrar como você pode fazer ou como você pode adicionar variáveis às funções. Acho que é um bom lugar para parar o vídeo antes que fique muito complicado. Então, na próxima lição, vamos falar mais sobre macros. E muito, muito em breve, vamos fazer um exemplo prático onde realmente fazemos algo dentro deste nível e juntamos todas as coisas que aprendemos. Então, vamos rever e aprender mais sobre macros.
22. Macros: Ok, então a última coisa que eu quero falar é sobre Macros. E o que macros é, é quase o mesmo que funções, mas eles podem conter função atrasada ou cronometrada. Então, o que quero dizer com isso, vamos criar algo. Então, por exemplo, no início da reprodução, vamos imprimir uma string na tela e é apenas dizer olá. E vamos atrasar este código por dois segundos, ou 2.220. E vamos imprimir outra string de tela dizendo, olá. Novamente. Isto é muito criativo. Certo, agora temos esse código. E agora se eu tentar marcar isso e clicar com o botão direito do mouse e colapsar para funcionar exatamente como aprendemos na lição anterior. Agora ele vai dizer colapso para a função falhou. E por que isso? Vamos clicar no show message log. E ele vai dizer atraso não pode ser colocado no gráfico de função. Então, muito importante saber, as funções não podem conter atrasadas ou são funções temporizadas, isso é o que eles são chamados. Eles não podem conter funções cronometradas, então você não pode realmente chamar Labs para uma função. Isto não vai funcionar. Você pode recolher isso para uma função e isso para a nossa função. Mas você não pode realmente colapsar esse atraso dentro de uma função. Então, em vez de fazer uma função, você faria uma macro em vez disso. Então clique com o botão direito do mouse nele e Recolher para Macro. Agora, agora você tem uma macro e você pode dar-lhe um nome, por exemplo, apenas mensagem, qualquer coisa. Então agora você tem uma macro e você pode ver aqui ele realmente contém uma função atrasada ou um tempo para funcionar. E isso é o que você quer fazer. Se você tiver funções de tempo, não será possível criar funções. Você pode criar macros. Se você clicar duas vezes nele, assim como antes, seriam funções. Você pode ver aqui você pode inseri-lo e você pode ver a macro. Você pode ver que temos uma entrada e uma saída, assim como tivemos com a função. Então, se eu clicar duas vezes na função novamente para que possamos visualizá-la. Temos a entrada aqui e a saída, que é o nó retornado. E a mesma coisa que temos com a macro, mas agora podemos realmente ter uma função cronometrada dentro dela. Voltamos ao gráfico de eventos. Você pode ver que nós realmente não temos um pino de execução aqui, assim como nós temos aqui. Então não podemos continuar nosso código. E isso é porque você tem que adicionar um. E dentro da macro que temos, você tem essa saída. E esta saída. Você pode adicionar uma variável exatamente como você fez com a função. E aqui você pode adicionar um pino de execução. Então isso é algo que você não poderia fazer com funções. Não é possível adicionar pinos de execução. O que você pode fazer com macros. Então você pode conectar, compilar e você pode ver aqui agora temos uma caneta de execução e podemos apenas continuar nosso código se quisermos codificar mais em nosso jogo aqui neste evento. Então agora você pode ver aqui, este é o nome dele, então dê algo que faça sentido. Por exemplo, digamos, vamos chamá-lo de retorno. E você pode ver aqui que muda de nome. E uma coisa legal sobre macros para, além das funções cronometradas é que você pode criar vários pinos de execução. Se eu clicar nestes três, vamos chamá-lo quando. Vamos chamá-lo de solto. E agora você tem vários pinos de execução
múltiplos, que você pode usar aqui no seu gráfico. Então isto é, isto é muito legal e estes têm usos dois. Então, se você quiser que vários eventos aconteçam aqui, você pode criar uma macro e fazê-lo. Você pode fazê-lo com funções. Funções sempre têm um pino apenas, mas macros podem ter vários pinos e eles podem ter função cronometrada, nosso tempo, as funções. O que costumo fazer quando programo é nunca criar macros, a menos que eu realmente precise de vários pinos de execução. Ou se eu tiver, neste caso, uma função de atraso no tempo que eu preciso para recolher e eu posso recolhê-lo porque você não pode recolher função atrasada ou funções de tempo para uma função, eu vou recolhê-lo para uma macro em vez disso. Também já temos macros pré-fabricadas. E isso é, por exemplo, o é válido por direito é válido. E vamos ver como podemos encontrá-lo. Se descermos, você pode ver este. Este é realmente um macro para, eles talvez, você já viu antes, talvez não. Esta é uma macro e isso é realmente usado, vamos usar isso mais tarde. Mas isso é usado para ver se nosso objeto é válido ou não. Então, por exemplo, se criarmos uma referência a este andar, podemos conectá-lo. E agora o jogo verifica. Este andar é válido antes de eu continuar o código? Porque se a Flórida não existe, por que devo continuar o código? Então isso é realmente uma macro. E se você clicar duas vezes nele, você pode ver aqui que é realmente uma macro e há alguma lógica dentro dela. Certo, vamos voltar ao gráfico. E para ver suas macros, você pode vê-los aqui à esquerda e a guia Macros, este é o que criamos. E ele pode criar várias macros novamente recolhendo para a nossa macro, ou você pode criar uma nova macro clicando no sinal de mais e você pode dar-lhe um nome. Eu só vou chamá-lo de nome. E você pode colocar sua lógica dentro daqui. E novamente, você pode criar variáveis, por exemplo, lápis de execução se você precisar delas. Você também pode criar outras variáveis, por exemplo, booleanos e assim por diante. Tudo bem, então foi isso para macros, e espero que isso não tenha sido muito confuso. Vamos continuar para a próxima lição e muito em breve vamos tentar usar tudo o que aprendemos no exemplo de João. Assim, podemos aprender melhor sobre como usar as macros, como usar os eventos e como usar as funções.
23. de função e biblioteca de Macro: Então, antes de terminarmos esta seção, você pode realmente criar bibliotecas para adicionar funções lá e macros lá que você pode usar globalmente entre todos os blueprints. E isso é muito útil se houver uma função que você tem que usar em todos os lugares, você terá que colocá-la dentro da biblioteca e você pode acessá-la em todos os lugares. Então eu só, eu só queria mostrar a vocês como fazer uma biblioteca antes de irmos ao exemplo. E vamos fazer uma nova pasta. Se você clicar com o botão direito do mouse e criar uma nova pasta, Vamos chamá-lo de blueprints. É sempre bom ser organizado. E dentro da pasta azul de plantas, vamos entrar nas plantas. E aqui você pode criar uma biblioteca de função de blueprint ou uma biblioteca de macro de blueprint. Vamos criar uma biblioteca de função de blueprint. E para esta biblioteca, você pode chamá-la de qualquer coisa. Por exemplo, vamos fechar verso chamado biblioteca por enquanto. E se você clicar duas vezes nele, você pode ver aqui que agora estamos dentro de um gráfico, e isso se parece exatamente com nosso gráfico de eventos que trabalhamos aqui. Mas esta é na verdade a biblioteca e só contém funções. Então digamos que eu queria usar uma função, por exemplo, para imprimir uma mensagem. Então eu só vou chamar a mensagem de impressão myfunction. E esta função está apenas indo para conter string de impressão. E vou dizer que isto é da minha biblioteca. Ok, então agora ele vai imprimir uma mensagem dizendo que isso é da minha biblioteca. Se eu compilar e salvar também pode adicionar um nó de retorno se você quiser torná-lo olhar limpo. Ok, então agora podemos acessar essa função porque está dentro de nossa biblioteca, podemos acessá-la em qualquer lugar. Então, se eu voltar para o meu Plano de Nível e aqui, eu vou escrever o nome dessa função que eu fiz. Vou voltar e escrever uma mensagem impressa. E agora você pode ver dentro de uma classe e biblioteca, você pode ver a mensagem de impressão. E também se você descer aqui na sala de aula e biblioteca, você pode ver todas as suas funções de biblioteca. Ok, então você pode clicar na mensagem impressa. E agora se você conectado, e vamos compilar e clicar em jogar. Opa, podemos jogar. Você pode ver que isso é da minha biblioteca. Então é assim que você faz funções dentro das bibliotecas. Se você quiser acessá-los em todos os lugares, você pode ver que eles não aparecem aqui porque a função não é feita dentro daqui. Eles são feitos dentro da biblioteca. E se eu fizer vários blueprints, o que faremos mais tarde, você pode usar a função em todos esses blueprints. Em vez de entrar em cada blueprint e tentar fazer a função a mesma função, eles serão apenas uma perda de tempo. Então, indo para dentro da biblioteca, criando a função que você vai usar o tempo todo. E, em seguida, voltar para todos esses blueprints e usar esta função. Agora lembre-se que você não quer fazer todas as funções dentro daqui, apenas aquelas que você quer usar o tempo todo. Então, se há funções específicas dentro daqui, você não é realmente, você realmente não quer entrar aqui e torná-lo porque talvez você só queira acessá-lo aqui ou você quer acessá-lo entre dois blueprints diferentes. Isso só é usado para quando você realmente precisa acessar plantas em todo o lugar. E lembre-se que isso realmente afetará o desempenho do jogo se você tiver uma
enorme, enorme, enorme biblioteca que você tem que acessar, lembre-se apenas de usá-lo quando você tem que usá-lo. Por exemplo, neste caso, digamos que queremos imprimir esta mensagem em todos os blueprints que temos. Eu vou usá-lo e só usá-lo se você tiver que acessar uma função muitos,
muitos lugares, e não apenas um lugar sobre dois lugares. Portanto, não há realmente uma regra para um adicioná-lo aqui. Mas você pode apenas tentar julgar quando você quer adicioná-lo aqui e quando você quer fazê-lo dentro daqui, a mesma coisa acontece com as macros. Eu realmente não quero fazer um, mas vamos apenas rapidamente fazer a biblioteca. E você pode ver aqui, você pode escolher que tipo de biblioteca você quer criar. E isso é um pouco mais confuso porque nós realmente não falamos sobre isso. E se eu clicar no ator, você pode ver aqui agora que você tem uma macro. E esta macro só funciona para atores. E eu realmente não quero entrar nisso por enquanto. Temos lições para isso. Então vamos falar sobre apenas para dizer que você pode criar bibliotecas para macros, e você pode criar todas as macros que você
deseja criar exatamente como fizemos com a biblioteca de funções. Tudo bem, vamos passar para a próxima lição e vamos dar um exemplo de tudo o que aprendemos e tentar aprender melhor fazendo isso na prática.
24. Eventos, Functons e exemplos Macros: Olá e bem-vindo de volta. Agora vamos tentar usar tudo o que aprendemos neste exemplo. Então agora eu tenho esse mapa chamado o tutorial mapa que fizemos anteriormente. E era apenas um mapa simbólico que eu fiz, chamá-lo de Tutorial do Mapa. E é isso. Nada está dentro deste mapa, então está tudo vazio. Portanto, o que queremos fazer é, em primeiro lugar, ferir o Plano de Nível. Então, aqui em Blueprint, abra o Level Blueprint. E agora está vazio. E eu normalmente quero apagar isso por enquanto. Então, está totalmente limpo e totalmente vazio. Então, para começar, nós queremos, o que eu queria fazer para este exemplo é que eu quero fazer três aviões, então três motivos diferentes. E esses aviões se apagarão de novo uns contra os outros até atingirem um objetivo. E um deles ganhará quando atingir o objetivo. Então é algum tipo de corrida matrizes e você tem que clicar no botão para apagar com o avião. Ok, então jogo muito simples. Não é o próximo Counter-Strike, mas é um começo. Ok, então vamos começar e tudo o que podemos começar com é adicionar os eventos ou nós podemos realmente apenas adicionar os aviões primeiro. Acho que isso vai fazer mais sentido. Então vamos criar três formas. Criaremos um avião, ou criaremos um cubo ou uma esfera. Vamos, vamos criar uma esfera realmente mais legal que um avião, certo? Três esferas, e temos uma aqui. Temos um aqui, e temos um aqui. Ok? E, a propósito, se você quiser duplicar, você tem que segurar Alt enquanto você arrasta. É assim que você duplica. Ok, então agora temos três aviões e podemos aumentar a forma deles ou podemos deixá-los em paz. Isso depende de você, mas talvez isso não importe para isso. Não é um jogo competitivo. Podemos fazer este tamanho para R1 e meio. Também uma caminhada para não mudar todos os três números, podemos apenas clicar neste bloqueio. E assim podemos mudar um número e isso mudará todos os três. Ok? Vou colocar estas esferas acima do solo. Ok, então não importa muito. Agora temos três esferas diferentes. Então o que eu quero fazer agora é clicar no primeiro nome do medo e dividendo. Então vou chamá-lo de pequena esfera. Clique no próximo, chame-o de esfera média. E clique no último e chamá-lo de esfera de perda. É sempre bom dar-lhes nomes porque na programação você precisa saber qual é qual. Ok? Então agora eu tenho essas três esferas diferentes e o que nós queremos fazer é adicionar um gatilho de dólares. Então, se você for para Criar, você tem algo chamado um gatilho de Bugs. E se você pressionar G, Então você pode ver todos os ícones. Este é um gatilho de caixa e o que isso significa é que
podemos realmente fazer um evento ou algo acontece quando você sobrepõe esse dinheiro gatilho. Então eu vou dimensioná-lo para cima, pressionando R para ir para a ferramenta de escala e apenas dimensioná-lo para cima. Você também pode dimensioná-lo aqui, se quiser, neste painel Detalhes. Mas não importa, depende de você. Só estou escalando assim e colocando no meio. Então é como uma linha de ouro. Ok, então agora temos um objetivo e torná-lo um pouco maior, então ele cobre tudo. Ok, então agora nós temos isso e essas três esferas vão levantar-se uma contra a outra e uma delas vai,
vai, quando eles alcançarem o objetivo mais rápido. Certo, então vamos salvar tudo. Este é o nosso nível simples. Vamos para um plano e criar o ganho. Então abra o Plano de Nível. E aqui queremos apagar com três botões. Então, queremos controlar esta esfera com o botão EE. Queremos controlar este com o botão R no teclado. E queremos controlar este com o botão T. E vamos voltar. Então, estes são eventos reais. Então, se você clicar em E aqui e talvez escrever a chave, você não encontrá-lo, basta subir. E esta é a chave. Portanto, este é um evento para quando a tecla EE é pressionada ou liberada. Então clique nele. E você pode ver aqui isso é realmente um evento porque este é um nó vermelho. Isso significa que é um evento. E vamos encontrar a chave R. E vamos encontrar o atrevido. Ok, então agora eu tenho a chave E, chave e tiki, então estes são eventos. Então, se clicarmos na tecla E no teclado, o que acontece se clicarmos no R? O que acontece? Então o que queremos que aconteça é que queremos mover esses medos, certo? Tudo bem, então. Vamos realmente fazer isso. Vamos fazê-los se mexer. Então aqui, queremos obter uma referência à esfera para começar,
com a tecla E, queremos mover essa esfera. Então eu estou clicando nesta esfera e então eu volto aqui e clique com o botão direito do mouse e clique em, criar uma referência para pequena esfera. Agora que temos uma referência à pequena esfera, queremos definir a localização real. Então, se você apenas escrever um local para encontrar o nó correto, pode ver aqui temos algo chamado local definido que temos usado anteriormente. Ok, então quando você pressiona um, você quer definir um novo local para isso. Então, qual deve a localização B? Não podemos realmente torná-lo estático. Porque se o tornarmos estático, como se pressionarmos, se pressionarmos E Now, deixe-me fazer 50 ou algo assim de pilha e clicando em jogar. Então, se eu for aqui e clicar em E, você vê que nada acontece lá. Isto, na verdade, porque lhe diz esta malha tem de ser móvel. Senão você não pode movê-lo no jogo. Então clique nas malhas e clique em móveis, móveis e imóveis. E vamos tentar de novo. Vamos salvar, salvar tudo, e vamos jogar de novo. Agora, quando você clicar em OK, agora você vai movê-lo 50 e alguns clique E novamente. Nada acontece porque este é, na verdade, um número estático. Você está apenas movendo-o para a deslocação. Você não está mexendo toda vez que você prossegue. Então o que queremos fazer é que queremos obter a localização atual da esfera. Queremos adicionar um certo número a ele
e, em seguida, queremos definir o local por este número. Então vamos tentar criar talvez ele vai ficar mais explicativo quando você vê-lo. Então, para começar, vamos desconectar isso. E para a esfera, vamos tentar. Obter localização precisa. E a maneira mais fácil se você não sabe como é chamado, apenas o local certo. E você verá a localização do ator. Certo, agora temos a localização deste ator que está aqui. Então, o que queremos fazer com a deslocação? E queremos movê-lo ao longo do eixo x. Como você pode ver aqui no ponto de pivô, desta forma é na verdade o eixo x, o ponto de pivô vermelho. Você pode vê-lo aqui. É DX. E queremos movê-lo ao longo do eixo x desta forma. Então, o que queremos fazer, queremos voltar aqui e queremos movê-lo em direção ao eixo x. Então queremos dois mais d x eixo. Queremos alterar o valor. Então este é um vetor. E lembre-se, um vetor contém três números, x, y e z. Mas o que nós, o que
queremos, só queremos editar o valor z. E podemos fazer isso arrastando até aqui e escrevendo vetor de quebra. Então agora nós estamos quebrando o vetor em x, y e z. e nós só queremos mudar o x. Então, por exemplo, mais, e na verdade, eu acho que é, eu acho que é negativo porque, whoops, Agora eu minimizo ele. Acho que é negativo porque vamos por aqui. Desta forma. Isso é mais, isso é menos. Bem, vamos voltar e escrever menos 7. Talvez devêssemos ter escrito subtraído dez. Vamos tentar isto. Ok? E agora queremos fazer o vetor, não
queremos alterar os valores y e z, então isso deve permanecer o mesmo. Então agora aqui você pode fazer, você pode fazer um vetor. Então faça vetor. Ok? Então agora vetor Meg, isso está correto, isso está conectado ao x e o y e z devem permanecer o mesmo. Então, fazendo isso, nós realmente quebramos o vetor. Editamos o valor x, e então fizemos o vetor novamente. Então agora eu tenho o vetor novamente, mas desta vez nós realmente mudamos o valor x. Então o que eu quero fazer com isso é toda vez que você pressionar o E, você quer subtrair 10 do x. Então desta forma você move por 10 e retorna para prosseguir. Então agora este novo local é este. Vou definir a localização real. Então agora, antes de clicar em jogar, lembre-se de adicionar esta pequena esfera ao alvo. E você pode realmente clicar duas vezes sobre isso, esta linha. E isso criará este nó aqui, que é um pino de conexão. E você pode mover isso, e esta é uma boa maneira de organizar seu código. Então isso é muito legal. E uso isso para organizar o código. E agora deve funcionar. Então, se você compilar e clicar em
Salvar, salve tudo e clique em Reproduzir. Você pode ver aqui se você clicar em E, você está se movendo por 10 cada vez. Se eu continuar clicando em E, eu mudei por 10 cada vez. Então isso é muito legal. E talvez possamos movê-lo um pouco mais disso é muito lento. Talvez você possa movê-lo por 20 em vez disso. Tudo bem, então isso está funcionando. E a próxima coisa que eu quero fazer é imprimir um texto na tela para me mostrar quantos passos eu dei. E isso é simples, como fizemos antes. Podemos usar uma corda de impressão. E vamos ver o que fazemos. Podemos realmente fazer um evento personalizado. Então vamos fazer um evento personalizado. E este evento podemos chamar adicionar passos. Ok, e precisamos de uma variável para isso, algo para armazenar nossa quantidade de passos. Vou fazer uma nova variável, chame-a. Vamos chamar de passos tomados. E aqui nós mudamos para inteiro porque é um número sem decimais. Se fosse o quê? Decimais que teríamos escolhido flutuar. Mas este é um número sem decimais, e é por isso que escolhemos inteiro, mantenha o controle e arrastá-lo para chegar aqui. E nós queremos, queremos adicionar um passo cada vez que você pressionar E. Então basta escrever mais, porque mais, mais é adicionar um ao valor especificado, então ele disse automaticamente. Ok? E queremos imprimir esse valor. Então, imprima string e conecte isso. Mas agora ele vai imprimir toda vez que pressionar E. Ok, então lembre-se, este evento não vai funcionar atualmente porque nós realmente
não disse que o jogo foi chamar este evento. Lembre-se, cada vez que você pressionar E, você deseja adicionar um passo. Então aqui, escreva o nome do evento. Aqui, clique em Adicionar passos estão certos como passos para chamar este evento. Então agora toda vez que
pressionamos E, vamos mover a esfera e também chamar este evento para adicionar um passo à nossa variável. Ok, então agora podemos compilar e clicar em Reproduzir. Podemos clicar em E. E você pode ver aqui ele está realmente se movendo e também está imprimindo na tela quantos passos demos. Certo, agora que os passos estão funcionando, vamos fazer algo por diversão. Por exemplo, se você tomar 25 passos, o jogo irá dizer-lhe que você provavelmente deve parar de jogar o jogo e começar desenvolver mais porque senão você quer terminar com o jogo. Então, por exemplo, aqui nas etapas tomadas, Vamos escrever igual. E talvez eu tenha feito muito rápido, vou fazê-lo um pouco mais devagar. Então escreva o sinal de igual, escolha o igual. E aqui você pode clicar duas vezes, fazer um alfinete para torná-lo mais organizado. Você pode realmente marcar esses dois e clicar no sinal para fazer uma linha reta. E você pode arrastar para fora disso e clicar em B para criar uma ramificação e conectado. Ok, então agora você está dizendo, é que os passos tomados são iguais a, digamos 25. Se isso for verdade, então o jogo vai fazer alguma coisa. E se for falso, fará outra coisa. Então, neste caso, se os passos não forem 25, não
faremos nada. Se os passos são um 25 que queremos ou vamos imprimir uma corda dizendo, parar de colocar e começar a desenvolver novamente. Ok? Então ele vai dizer é que você provavelmente deve parar de jogar o jogo e fazer alguns órgãos que vamos compilar e salvar. E agora funciona. Podemos configurá-lo mais tarde, mas isso provavelmente deve funcionar. Então, se eu voltar e agora queremos que esse objetivo funcione. Então, a fim de fazê-lo funcionar como queremos, se esta esfera atingir este objetivo, queríamos imprimir que esta pequena esfera tem uma ou esta esfera média tem uma e assim por diante. Então queremos fazer é clicar nesta caixa de gatilho. E enquanto clicamos nisso, vamos voltar ao nosso gráfico de eventos e ao Plano de Nível. E vamos clicar com o botão direito do mouse,
ir em Eventos, ir em colisão e, em seguida, clicar no anúncio no Twitter, começar a sobrepor. Então este é o ator começar evento de sobreposição. Mas o que acontece quando este gatilho está sobreposto? E queremos imprimir uma mensagem dizendo que esta esfera tem um. E que esfera tem um. Queremos obter o nome da esfera, e este é na verdade o outro ator. Este é o ator que é, vamos colidir com esse dinheiro de gatilho. Então nós queremos obter o nome dele e você pode apenas escrever nome e você vai ver algo chamado de obter disciplina. Eles vão ter o nome de exibição é realmente este nome aqui em cima. Este é o nome de exibição. Então queremos obter o nome de exibição. E vamos tentar ligar e ver o que acontece. Então, queremos dividir o nome por enquanto. Vamos clicar em Jogar. E você olhou E, pode ver que nada acontece. E por que isso? Isso ocorre porque você tem que clicar na esfera. E aqui embaixo sob colisão, há algo chamado gerar eventos de sobreposição. Se você não tiver isso marcado, você não, você não pode fazer nenhum evento de sobreposição. Então verifique esta esfera que ele é capaz de fazer eventos de sobreposição e salvá-lo. Frágil clique em Jogar e clique em E. E você pode ver aqui no canto superior esquerdo que diz pequena esfera. E isso está correto. Ok, então vamos torná-lo mais interessante. Em vez de apenas dizer pequena esfera, nós só queremos imprimir a mensagem em vez disso. Então vamos fazer uma nova variável, fazer uma nova variável de texto, e chamá-la de uma mensagem. E escolha o tipo de variável como texto. Então agora temos esta mensagem. Vamos compilar. E para esta mensagem, digamos que, agora não podemos escrever pequena esfera porque este será texto estático. O que é, a esfera média. Então, para que isso seja dinâmico, você realmente tem que usar colchetes. Então colchete encaracolado, e não importa o que você escreve dentro deste colchete encaracolado. E dentro daqui, você pode apenas escrever, por exemplo, vou mostrar-lhe o colchete e, em seguida, encaracolado. Comece. Você escreve algo dentro do colchete, e então você termina, e então você continua. Ou uma frase, por exemplo, como esta. Por exemplo, a esfera pequena tem um ou a esfera média tem um. Agora, para fazer, para preencher este espaço de colchetes, você pode arrastar isso para fora. Então esta é a mensagem do vento e temos que usar algo chamado texto formatado. Então, qual é o formato do texto, nós podemos realmente formatar esses colchetes em alguns textos que nós, que adicionamos dinamicamente. Se você adicionar isso quando mensagem ao formato de texto, você pode adicionar um pin aqui. E você pode ver que há um 0 e este é o nosso 0 aqui. Mas se você pode escrever o que quiser dentro desses colchetes. Se você escrever, por exemplo, esfera lá, algo esfera tem um. Você realmente tem que clicar aqui e também chamado de esfera. Então você tem que chamar a mesma coisa. E agora você pode, você pode conectar este nome de exibição get a este texto formato. E então você pode conectar esse texto de formato à string de impressão. Então agora ele vai dizer D.
E a esfera de colchetes de cor é na verdade este texto. Então é o nome de exibição. Então, por exemplo, ele vai dizer a esfera média, esfera
média, e então tem uma. Ok? E isso será impresso na tela. Vamos mudar isso para uma cor verde. Vamos fazer com que seja 10. Para que possamos ver. E vamos clicar no jogo. E se você tiver sorte e
acertá-lo, vai dizer que a pequena esfera tem um. Então isso está funcionando. E o que queremos fazer é desativar a entrada para que você não, você não pode clicar mais quando você ganhar o jogo. Então vamos desabilitar nenhuma exibição, desabilitar a entrada. Mas desative a entrada. E está pedindo um controle de jogador. E aqui você pode apenas escrever obter controlador jogador. Então esta é a camada, o controlador do jogador anexado a este jogador. Vamos compilar e clicar em Salvar, salvar tudo. Ok, vamos clicar em Reproduzir e minimizar isso. E se eu clicar em E, e é um, eu realmente pressiono mais porque e é meu para cima e para baixo. Se você pode vê-lo em seu próprio teclado, eu não posso clicar mais. Então este jogo parou. Certo, então vamos voltar e teremos que fazer funcionar em todo o resto. Então também temos as arcas e o Tiki. Então, a fim de fazer isso, em vez de vir aqui e copiar colar este código. E eu estou fazendo isso e me conectando e tal. Este é um mau treino. Aprendemos em lições anteriores. Você pode realmente recolher coisas para funções para que você
possa torná-las mais limpas e acessá-las facilmente. Então o que eu quero fazer é a única coisa que vai variar nesses outros botões, o R e T são as esferas que estamos referindo. Então, se clicarmos na esfera média e vamos fazer referência a ela. Então aqui em baixo, isso é para a esfera mínima um nós clicamos no nosso e para o outro, é a esfera grande. Então vamos fazer referência a este. Agora tenho referências. Então, esta é a única coisa que vai variar. Este código aqui será o mesmo. E então o que podemos fazer é que este é como um evento, então nós realmente não precisamos colapsá-lo porque isso é o mesmo. Então este vai ser o mesmo. E esta é a única coisa que vai variar. Ok? Então o que podemos fazer é clicar com o botão direito do mouse sobre isso e selecionar o colapso para funcionar. Então agora temos luvas para uma função e
vamos chamá-la de “mover esfera”. Chame de algo que faça sentido. Então podemos isso faz sentido para nós mais tarde. Ok, então se eu clicar duas vezes no, se eu clicar duas vezes na função que acabamos de fazer, e eu apenas mover as coisas para baixo para que seja um pouco mais organizado. E você pode ver aqui, ele automaticamente cria entrada para nós. E se clicar duas vezes nele, você pode ver aqui essas entradas estão conectadas. Isto é um pouco duplo. Nós realmente não precisamos desses dois porque isso é realmente o mesmo. Você pode ver aqui que ele está conectado a ambos. Só precisamos de um deles. E o que eu vou fazer é clicar neste nó inicial e eu vou excluir um deles. Então eu vou, eu vou apagar este botão um. E eu vou chamar essa esfera. Ator de esfera é talvez um nome mais específico. Então o que eu vou fazer é conectá-lo aqui. Então agora este é o ator da esfera. Então aqui, vou clicar em Alt e clicar aqui para desconectar. Então agora está mais correto. Este é o ator de esfera que conectamos. Ok? E esta é a adição de passos, que é este evento que é chamado aqui para baixo. Então agora o que podemos fazer é usar essa esfera de movimentos. Então, se eu compilar e salvar, e vamos clicar duas vezes,
isso está ótimo. Vamos descer aqui. E o que eu posso fazer é arrastar para fora a esfera suave e eu posso conectá-la. E agora eu posso conectar essa esfera média, o ator da esfera. Agora, este, este é o único como aqui em baixo. É a esfera média que está sendo conectada a tudo isso. E aqui embaixo, podemos copiar e colar. E isso vai mover a grande esfera em vez disso. Então isso é muito limpo. Em vez de copiar colar todo o código. Se você quiser torná-lo mais limpo, realmente não importa, mas você pode escrever retorno, o nó de retorno. Então, se você apenas escrever retorno, clique no nó Add Return. Isto só parecia mais, parece mais limpo. Ele realmente não adiciona mais ao código, mas parece mais limpo. Então, tudo bem. Vamos voltar ao gráfico de eventos e ver o que estamos perdendo. Então precisamos adicionar passos. Vamos apenas adicionar etapas aqui para que ele adicione a quantidade total de etapas. E estamos chamando esse evento toda vez que clicamos, vamos clicar em Compilar e salvar tudo. E lembre-se de clicar nessas outras esferas e tomar os eventos de sobreposição gerar. Caso contrário, você quer realmente sobrepor este gatilho de dólares. Ok, então salve tudo e vamos clicar em Reproduzir e testá-lo. Então, se eu clicar em ie, eu mover esta bicicleta são, eu mover esta esfera, e se eu clicar em T, eu mover esta esfera. Podemos ver aqui ele adiciona à quantidade total de passos sempre que eu clicar. E se eu, por exemplo, queria ganhar com a esfera média, diz que a esfera média tem uma, e não consigo clicar mais porque desativei a entrada. Então este era um jogo pequeno e simples. E se você quiser ver esta caixa de gatilho dentro do jogo, porque você pode ver se eu clicar em Jogar, é invisível. Você pode clicar nesta caixa de gatilho, descer aqui e desmarcar este ator escondido no jogo. Então agora eu posso vê-lo em jogos que você quer jogar, pode ver a caixa de gatilho na sua frente. Exemplo que eu queria mostrar a vocês, e foi um pouco mais complexo do que o que costumávamos fazer nas outras lições, mas ainda assim muito simples. E se você quiser, você pode usar o evento start play para e dizer, por exemplo, a corrida começou. Vai, vai, vai. Algo assim, o que você quiser. E então agora, quando começamos a apagar, ele vai dizer que, a corrida começou e você provavelmente deve correr agora. Certo, então quando voltarmos, o que fizemos foi começar a jogar. Imprime este texto. E então temos esses eventos, a chave E, a chave, e o Tiki. Então se eu colocá-los aqui para que seja mais organizado para você. Então temos o Yuki, o Arca e o Tiki. Ok? E quando você apresentar é a chave, algo acontece. E o que acontece é que você move a esfera. E esta é a função colapsada que fizemos. Você pode acessá-lo por aqui, ou você pode acessá-lo clicando duas vezes aqui nas funções. Pode ver uma aba abre aqui. Assim, você pode alternar entre o gráfico de eventos e a função recolhida. E dentro desta função temos uma entrada, e este é o ator de esfera que temos que inserir dependendo de qual ator é. E isso também pode ser feito basta clicar no plus aqui e procurar ator. Então é esse ator e você pode até fazer outros atores. Então é assim que isto é feito. Isso, isso foi feito automaticamente, mas agora você pode ver como você faz isso manualmente. Ok, então este ator foi feito e então nós conseguimos a localização real. Nós quebramos o vetor, que é este. Nós só queremos mover o eixo x. Nós fazemos o vetor novamente para torná-lo, para torná-lo de volta em um vetor. E nós adicionamos como o novo local para esta esfera. Ok, então esta é a maior esfera e depois adicionamos passos. E este é o evento que fizemos aqui está chamando o evento. E cada vez que clicarmos em E, ele chamará este evento, que será mais 1 sobre os passos dados. E isso te levará a uma tela. E se for igual a 25, ele vai dizer parar de jogar o jogo e parar de jogar e sub desenvolver o jogo. E, por último, quando você se sobrepõe com o objetivo ou a caixa Trigger, ele exibirá uma mensagem. E esta mensagem tem esses colchetes chamados sphere. É este aqui. A esfera é o nome que mostrará o nome de exibição, que então mostra dinamicamente em vez de escrevermos uma mensagem estática. E podias ter-lhe chamado do que quisesses. Você poderia ter chamado de doce. E lembre-se de mudar esse nome para Candy 2. E isso também funcionará se você desconectar isso conectado a doces e clicar com o botão direito do mouse e clicar em Atualizar notas. Então agora funciona também. Então não importa o que você chama, mas chame de algo que faça sentido para você. E então nós imprimimos este texto final para a tela por string de impressão. E desativamos a entrada sempre que o jogador ganhou. E outra coisa final, se você quiser fazer mais com isso,
lembre-se de comentar seu código. Então aqui, por exemplo, ele pode marcar todos estes, clique em C e clique em E e C eventos para mover nova esfera. Não sei o que ele quer. Eu não quero fazer este vídeo muito longo, mas lembre-se de comentar todo o seu código. Esta é uma boa prática. E porque, por exemplo, em 15 dias, se você voltar, você não consegue se lembrar do que fez. E isso é muito fácil de ver todos os comentários e ver o que o seu terminou. Espero que isso também tenha sido útil. E se algo estiver confuso ou algo que você queira saber mais sobre, por favor me avise e eu responderei nos comentários ou dentro do servidor da comunidade da discórdia se você estiver lá dentro. E ficarei feliz em ajudá-lo. É incrível que você tenha chegado até agora. Este é realmente um grande progresso. Então agora vamos para coisas mais avançadas. Por exemplo, as matrizes. E mais tarde, aprenderemos mais sobre como configurar personagens, como usar um controle de jogador e todas essas coisas. Então, obrigado por assistir esta lição e vamos para a próxima.
25. O que são os arraias?: Ok, então é hora de falar sobre matrizes. Então o que é uma matriz, uma coleção de elementos. Então aqui eu tirei uma foto do Google apenas para explicar para vocês antes de começarmos a trabalhar dentro do motor. Então aqui você pode ver uma matriz. Uma matriz é simplesmente uma caixa e pode ser tão grande quanto você pode ser. Então não tem que ser esses cinco slots. Pode ser o tempo que você queria dentro do jogo. E é uma caixa e está dividida em pequenas seções. Então você pode ver aqui no lodo 0, você tem algumas informações. No slot um, você tem algumas informações e assim por diante. Em um array, você pode armazenar várias informações. Digamos que temos um inteiro, um número de variável dentro do jogo, e nós torná-lo em uma matriz. Isso significa que podemos armazenar vários números dentro daqui. Então, no slot 0, podemos ter um número, por exemplo, cinco. No slot um, podemos ter outro número, por exemplo, 23 e assim por diante. Então temos uma coleção de números ou coleção de elementos e podemos usá-lo durante a jogabilidade. Agora, outro exemplo para tornar mais fácil é se você imaginar que este é um inventário dentro de um jogo FPS, por exemplo, Counter-Strike. E no slot 0 você tem sua faca. No slot 1, você tem o seu PESTEL como loteria. Você tem o seu AK-47, um slot 3, você tem sua granada, e assim por diante. Estes são todos chamados de atores no jogo. E assim você tem informações em cada uma dessas caixas dentro da matriz. Assim, durante a jogabilidade, você pode optar por chamar algumas informações especificamente. Então, por exemplo, eu quero usar a informação que é armazenada no slot t2. Então isso é o que um array é. É simplesmente uma coleção de elementos que podemos usar durante o jogo. Então vamos saltar para o motor e talvez se
torne mais claro para você se ainda parecer confuso.
26. Como criar um raio: Certo, então aqui estamos dentro do motor. Vamos em frente e fazer nossa primeira matriz. Então vamos passar para o nível que criamos. Ok, então eu estou aqui dentro e dentro desses níveis eu vou para os planos de nível. Este é o exemplo que fizemos antes, mas vamos ignorar isso por enquanto. Só vou desconectar o ponto inicial para que possamos usá-lo aqui em cima. E a maneira como você faz um, um array é simplesmente criar uma variável porque arrays são variáveis. Então aqui, crie uma nova variável. E para este, vamos chamá-lo de nomes de personagens. Teremos um monte de nomes de caracteres dentro desta variável. Então nomes de caracteres, isso é algum tipo de texto e isso é, nós podemos fazê-lo com uma string. Lembre-se, é sempre bom usar isso. Aquele que requer memória menor se você é capaz de textos são, você é capaz de localizá-los. Você é capaz de traduzi-los em diferentes idiomas, por exemplo, alemão ou chinês. Mas os nomes realmente não precisam de tradução para que possamos viver com uma string. Certo, agora temos alguns nomes de personagens. E se você arrastar isso apenas normalmente como fizemos antes, esta é apenas uma variável normal e isso não é uma string, quero dizer, não uma matriz. Então, vamos deletar. E a maneira como você faz isso em uma matriz é aqui à direita. Você pode ver que há um pequeno botão. Se você clicar neste pequeno botão, você pode alterá-lo em coisas diferentes. Então agora estamos trabalhando com arrays. E aqui você pode clicar nele e ver que agora ele se torna um monte de caixas. E agora temos uma variável de cadeia de matriz. Então, vamos arrastar essa variável string mantenha controle, arraste-o para o gráfico de eventos. E você pode ver aqui agora que parece um pouco diferente. Se eu, se eu arrastar para fora outra variável que não é um, um array, você pode ver a diferença. Isto é em torno do pino. Este é um alfinete quadrado. Então agora esta é uma matriz, esta é uma variável normal. Então agora podemos adicionar algumas informações ao nosso array. E antes disso, assim como fizemos com as variáveis, lembre-se de compilar antes que você possa adicionar informações a ele. Então compile e salve. E aqui você pode ver que você pode adicionar elementos a esta matriz. Então, em vez de ser uma string, então vamos, eu estou indo em frente e criando uma variável normal. Então eu vou chamar esse nome de personagem, e eu estou mudando de volta para uma variável normal só para que possamos ver a diferença. Agora esta é uma variável normal, esta é uma, uma matriz, e estas são ambas strings. Então, se eu compilar, você pode ver aqui esta matriz de caracteres ou este caractere, desculpe, variável normal. Podemos, por exemplo, escrever um nome e escrever John. Então agora temos o John aqui. E nesta matriz podemos ter várias informações. Lembre-se que este é um conjunto de caixas e podemos ter várias informações aqui. Então, se você clicar aqui aplausos, podemos escrever John. Isso está no índice 0. E no próximo índice podemos ter o meu nome. E o terceiro, podemos ter Kasper. No quarto, podemos ter, sei lá, cobra. E um chama-se cobra do Metal Gear Solid. Podemos ter o Viber. Agora temos um monte de nomes. Temos cinco nomes, e lembre-se que um array sempre começa em 0, então apagar nunca iniciou um. Então não é 12345, é sempre 01234. Então ele começa em 0 e você pode adicionar quantos quiser aqui, se você precisar. E agora, se queremos imprimir isso para a tela,
seria, seria a função de string de impressão, nós realmente não podemos fazer isso porque lembre-se que este é um array, e arrays têm esta caixa olhando coisa aqui. E esta não é uma matriz como uma variável nominal. Então, se você arrastá-lo sobre, ele vai dizer matriz de strings não é compatível com string. Então você tem que fazer algo antes de poder imprimi-lo para a tela. E isso é o que vamos aprender na próxima lição. Mas antes de terminarmos, lembre-se que você pode criar uma corrida com todas as outras coisas. Então eu posso criar uma matriz de inteiros. Então números, e eu posso chamar isso, eu não sei, talvez os níveis de personagem não sejam muito criativos agora. Então temos níveis de caracteres e você pode transformá-lo em uma matriz. Ok? Então agora isso é um array. E aqui você pode novamente compilar e salvar. E você pode adicionar todos os números que deseja a esta matriz. Para o que precisar. Isso pode ser níveis de jogadores e você pode adicionar quantos quiser. Então você pode ter uma matriz de números, você pode ter uma matriz de texto. E eu vou mostrar a vocês na próxima lição como podemos
acessar essas informações nesses diferentes índices.
27. Funções de matriz: Ok, então agora que criamos nossa primeira matriz, vamos passar por cima e falar sobre as funções de matriz que existem. Obviamente, eu não vou cobrir todos eles porque há muitos deles, mas eu vou te mostrar como encontrá-los. Então, se você arrastar para fora desta matriz e você vai para Utilitários e você entrar dentro da matriz aqui, você pode ver que temos um monte de funções que podemos usar para esta matriz. Então, por exemplo, se queremos imprimir o comprimento desta matriz, o comprimento é cinco. Lembre-se que temos cinco nomes diferentes, então começa em 0, termina em 4. Temos cinco informações diferentes aqui e estas podemos imprimir. Então agora estamos recebendo o comprimento deste array, e este é cinco atualmente. E este é o número, este é o comprimento da matriz. Podemos imprimi-lo na corda para ver o comprimento dela. Então, podemos compilar e clicar em Reproduzir. E vai dizer cinco aqui em cima. Então, se eu fizer isso só um pouco mais para que você tenha a chance de vê-lo. Diz cinco aqui em cima. Ok, então agora o comprimento é cinco. E, por exemplo, outro é o último índice. Então o último índice é quatro. Lembre-se que começa às 0, termina às quatro. Assim, o último índice irá imprimir 45 da compilação e clicar em Reproduzir. Você pode ver aqui que diz quatro. E você pode imaginar que você tem diferentes usos para ele quando você está programando o jogo. Se você deseja o último índice ou se você deseja o comprimento de sua matriz. Você também pode encontrar informações específicas dentro deste array. Então, se você voltar para utilitários e arrays, então agora aqui você pode obter informações. Você também pode encontrar um item, ou você também pode perguntar se ele contém um item específico e você pode fazer algo fora disso. Então, por exemplo, encontrar item. E agora vamos descobrir, acho que tínhamos o John aqui. Sim, temos gênero tem incontáveis encontrar Casper. Então eu estou dizendo para encontrar Casper, nós
temos Kasper na matriz? E vamos encontrá-lo. Onde está Casper? E agora ele vai dizer, Aqui está dentro do índice dois. Então, se voltarmos para o array e irmos para o índice dois e vermos Casper assim. Você pode encontrar informações específicas. Você também pode escrever get. E aqui você pode obter as informações de, por exemplo, índice 3. Vou imprimi-lo na tela. E índice 3 temos cobra. Então, no índice 3 temos cobra. Então estas são as diferentes funções de matriz que você pode usar, e há muitas delas. Vamos voltar para a matriz. E você pode, você pode perguntar se a matriz está vazia. Se estiver vazio, você pode fazer uma ramificação aqui, você pode conectá-la. E então você diz, se isso é, se este array está vazio, o que você quer fazer? Se não estiver vazio, o que você quer fazer? Então isso pode ter usos específicos também. Vamos arrastar para fora e ver uma das
últimas funções antes de terminar o vídeo. Então nós temos o, você pode obter algum item de matriz aleatória também. Então, se você tem uma matriz inteira, você pode obter um número aleatório fora de lá. O comprimento que falamos, você pode obter o último índice. Você pode perguntar se um índice é válido. E você vê aqui todos estes são verdes, mas você também tem funções azuis. Lembre-se, as funções verdes que falamos anteriormente são as funções que obtêm informações. Enquanto as funções azuis são as que definem informações. Então, a configuração aqui é que você pode, por exemplo, um limpar sua matriz. Então, se você quiser remover todas as informações que estão dentro desta matriz, você pode usar o nó clear e você pode conectá-lo. E agora vai limpar tudo nesta matriz. Certo, vamos deletar isso. Vamos dar uma olhada em outro. Você pode usar o anúncio, para que você possa adicionar durante o jogo, durante o jogo, você pode adicionar um novo nome. Então, por exemplo, Vamos adicionar cobras. Snakes amigo vai ser adicionado a esta matriz. E agora eu posso, eu posso imprimir este, este índice que vai ser adicionado, e eu posso clicar em Reproduzir. E agora temos o índice 5. Lembrem-se que só tínhamos o índice quatro aqui. Então agora cobras amigo é adicionado e ele está no índice cinco. Então é assim que você usa as funções com as matrizes. E você pode imaginar vários usos para ele. Você pode tentar, a melhor maneira de aprender isso é apenas clicar em uma função. Tentei usá-lo, ver o que acontece e você aprenderá melhor assim. Mais tarde, vamos fazer o nosso jogo. Então, quando eu falei sobre todos os elementos básicos em programação e blueprints, nós estamos indo para projetar nosso próprio jogo e lá nós também estaremos usando arrays, tentar colocar diferentes funções, tentar brincar com a matriz. Tentou fazer matrizes diferentes de outras, outras variáveis e ver como você pode usá-las. E vamos para a próxima seção e falar sobre o fluxo de execução.
28. O que são funções de fluxo de execução?: Bem-vindo ao primeiro vídeo do fluxo de execução. Então, o fluxo de execução antes que falamos é que o código é sempre executado cronologicamente. Então, a partir do evento, sempre
vamos para o próximo nó e executá-lo. Estamos, então corremos para o próximo nó e executá-lo. Este vai executá-lo e assim por diante. Não podemos saltar disto para isto sem ter rodado este código. Então temos que executar todo o código cronologicamente dentro disso, dentro desta linha branca. E você pode ver aqui a ordem de execução ou
fluxo de execução pode ser alterado com nós diferentes. Por exemplo, o nó de sequência, sobre o
qual falaremos mais tarde. E você pode ver aqui nós
podemos, podemos executar um tipo de código e então podemos executar outro depois disso. Então não está indo em linha reta. Está agora indo em direções diferentes. E é sobre isso que vamos falar. Vamos falar sobre as notas que podem mudar
o fluxo de execução e o que cada uma delas significa. Então vamos falar sobre o nó S válido no próximo vídeo.
29. Verificação de validade: Então, o nó válido S é simplesmente perguntando se algo é válido e se é, então você almoça um determinado código. Então, por exemplo, vamos passar para o nosso nível. Criamos este jogo mais cedo. E você realmente não tem que ter este jogo se você excluiu o nível, Está tudo bem. Eu só quero fazer referência a um item dentro deste nível. Então, por exemplo, a pequena esfera, eu vou clicar nela, e então eu vou clicar de volta no meu plano de nível, clique mouse e chamar uma referência dessa pequena esfera. E agora você pode arrastá-lo aqui e escrever é válido. E você pode ver aqui que este seria um ponto de interrogação. Isto é, na verdade, uma macro. Então agora você está perguntando, esta pequena esfera
é válida? Se for válido, então faça algo, então vamos imprimir na tela e dizer que essa esfera existe. Existe. Ok? Então o que este nó está fazendo é realmente perguntar, esta esfera
é realmente válida no nível? É criado? Se não for, então faça outra coisa. Ok? E isso é realmente usado muito
no jogo, porque imagine se você tem um personagem e você tem, digamos um jogo multiplayer ou apenas um jogo single-player. E o personagem ainda não surgiu. E então você tem um código de movimento. Por exemplo, clique em W para avançar. Você sempre vai perguntar se o personagem
gerou isso porque porque você executaria o código para clicar em W para avançar se o personagem ainda não foi gerado. Então este é um muito bom para otimização. Sempre perguntando, isso é realmente válido? A pequena esfera está realmente no nível? É? Em seguida, vá em frente e faça o jogador capaz de pressionar R para avançar, por exemplo. E se não for válido, então faça outra coisa. E o que eu costumo fazer aqui, apenas um pouco de conteúdo extra para você. O que costumo fazer é apagá-lo. Então adiando com 0,2 segundos, por exemplo. E depois de adiar, vou fazer isso de novo. Então ele vai correr como um loop até a resposta do jogador. Então você pode imaginar que o jogador está selecionando uma equipe agora que ele está selecionando, digamos que é Counter-Strike. Ele está selecionando terroristas são contra-terroristas e ele realmente não gerou ainda, ele está selecionando o que você quer ser. Então este jogo vai continuar em loop. O personagem existe no nível? Conheça os jogadores realmente ainda na seleção de personagens, então o jogador não é válido, então o personagem não é gerado ainda. Então agora eu vou atrasar com 0,2 segundos e então eu estou indo, quando ele estiver concluído, eu vou executar o código novamente e perguntar, o personagem responder ainda? E ele vai girar ao redor e ao redor até que o jogador clica no terrorista ou contra-terrorista e gera dentro do nível. Então diz sim, agora o jogador é válido. Vamos em frente e fazer essas coisas aqui. Então é assim que você pode usar o nó válido.
30. Sequência: Embora o nó de sequência é usado para limpar seu código. Então vamos tentar fazer o nó de seqüência, tentou arrastar para fora deste pino de execução e seqüência direita. E vocês podem ver aqui que agora temos um nó de sequência. E este nó de sequência é usado para limpar o código. Então, em vez de ter uma longa linha de código, agora
pode dividir o código para cima. Então, por exemplo, podemos escrever aqui, imprimir string. Agora vai imprimir a primeira mensagem. E eu vou copiar colá-lo e ligá-lo ao segundo aqui e dizer a segunda mensagem. Então aqui no nó de seqüência, uma vez que você pode fazer é realmente limpar o código e você vai dizer, faça isso em sequência. Então faça isso primeiro, depois faça isso, e então você pode fazer isso e assim por diante. Então ele vai executar o código deste pin primeiro. Então vai dizer a primeira mensagem. E se tivéssemos uma longa linha de código aqui, ele vai executar todo esse código primeiro. E então ele vai para baixo para executar todo esse código depois dele. E então ele vai executar todo esse código aqui embaixo. E você pode fazer quantos quiser. Você pode fazer o tempo que quiser. E este é o nó de seqüência é muito legal para limpar o código. Então, em vez de ter uma linha completa de código, se faz sentido dividi-lo, vá em frente e use o nó de seqüência. Então, por exemplo, aqui no jogo que fizemos anteriormente, não
faz sentido fazer uma sequência, mas eu realmente só quero mostrar a vocês porque este é bem pequeno, o código aqui. E o que eu quero fazer é mover isso um pouco mais longe. E quero fazer uma nota de sequência aqui. Então, estou fazendo uma sequência. E agora ele vai dizer, quando você executar este evento, primeiro, fazer este código aqui. E eu não quero, eu não quero fazer isso junto com este. Então eu vou desconectado e movê-lo para cá. Vamos movê-lo para baixo. E eu vou ligá-lo aqui, ok? E eu vou novamente ou ligá-lo de volta assim, mas eu acho que parece confuso, então eu vou copiar colá-lo. É o mesmo e use-o aqui para parecer mais limpo. Ok, então agora eu estou realmente fazendo o mesmo, mas eu estou fazendo através de um nó de seqüência e parece um pouco mais limpo. Então, ele vai dizer quando você executar este, este evento, executar este código primeiro. Então, adicionando as etapas e
imprimindo, imprimindo na tela
e, em seguida, vá em frente e verifique se as etapas são iguais a 25. Então este é o mesmo código, nada diferente, mas nós realmente dividimos em seções diferentes. Por isso, às vezes faz mais sentido dividi-lo. Então não está na linha completa de código e parece, parece um pouco confuso se tudo estiver junto. Então use a sequência deles indicada para limpar seu código.
31. Flip Flop: Agora vamos em frente e criar um nó flip-flop, e eu vou te mostrar o que é isso. Então vamos em frente e criar um evento. E aqui eu quero ter teclas de teclado. Então, por exemplo, a tecla F, tenho certeza que na tecla F, este evento. Então podemos clicar no teclado e fazer alguma coisa. E vamos fazer o nó flip-flop. Então, quando você pressiona o F, nós fazemos o nó flip flop. E aqui, agora no flip-flop, isso é como um interruptor. Ele vai ir de, ele vai executar o código em um. Se você clicar, se você clicar novamente, ele vai executar o código em B. E se você clicar novamente vai executar o código e um e assim por diante, vai mudar o tempo todo. Então, por exemplo, se eu escrever aqui, eu vou escrever o código em um, eu vou copiar colá-lo e vinculá-lo aqui e dizer o código em B. Ok, então agora se eu compilar e clicar em Reproduzir, e eu vejo aqui isso é do meu vídeo antigo. Então, se eu clicar, se ele vai primeiro dizer o código em um, e então ele vai dizer o código e B. Então ele vai dizer o código em a. Se eu clicar novamente, e se eu pressionar F novamente, vai dizer o código em V. Então ele vai alternar entre a e b. Então isso é o que um nó flip flop faz. Então você pode imaginar um interruptor em uma luz e você está colocando a luz e você pode ligá-la e desligar usando o nó flip flop.
32. Para loop: Então agora vamos falar sobre os loops ou você pode olhar algum determinado código. Então vamos lá e criar um loop. E para este, vamos falar sobre o loop for. Então, escrevendo o loop for. E você pode ver aqui, há algo chamado FOR loop. Então este para cada um é na verdade para arrays, mas queremos usar os que estão aqui em baixo. Então, para loop, e este é o loop. Então agora podemos fazer um loop certo, certo código. E este é o primeiro índice. Então isso é, isso é variáveis de variáveis de membro sempre começam em 0. E nós podemos escrever, oops, eu cliquei duas vezes. Podemos escrever outro índice. Então, por exemplo, cinco. Agora ele vai loop de 0 para o último índice, que é cinco. E aqui no corpo do laço, o que queremos fazer? Então é isso que queremos fazer um loop. Então, por exemplo, eu quero dizer olá 6 vezes. Lembre-se que começamos às 0 e terminamos às 5. Então, este é seis no total. Então eu quero dizer olá seis vezes. E quando eu terminei de dizer olá 6 vezes, quando é, quando o loop estiver concluído, eu vou dizer que este loop está feito. Agora eu vou dizer que este loop está feito, e eu vou escolher outra cor. E agora vamos em frente, compilar e clicar em Reproduzir. E você vai ver que eu disse oi seis vezes. E então eu disse, o loop está feito. Então é assim que você usa para loops. Então isso pode ser codificado exatamente como o que fizemos. Então você pode escrever um determinado número e compilar clique em Reproduzir. Agora vamos dizer olá 26 vezes. E depois de cumprimentarmos 26 vezes, vamos dizer que o loop está feito. E isso é, isso pode ser perigoso, como loops podem ser perigosos. Codificar, porque imagine que você tem um loop
que é, que é 10 mil e eu vou tentar clicar em jogar e espero que meu computador não vai soprar fumaça. E você pode ver aqui, eu clico em Reproduzir e ele realmente funcionou, mas levou algum tempo antes de começar a tocar. Então, se você tem um loop muito enorme dentro de seu jogo, isso pode afetar fortemente o desempenho, porque você tem que passar por toda a inclinação antes que você possa, antes que ele tenha terminado. E se você gosta, eu tenho um computador muito bom agora. Mas se você tem alguém com um computador ruim vai ficar, são talvez ele está indo para realmente caiu do jogo. Então você tem que ter cuidado com os loops, mas eles definitivamente precisam ser usados. Nós os usamos muito quando codificamos um jogo. Mas tenha cuidado. Às vezes você é capaz de criar loops
infinitos e estes definitivamente vai falhar o seu jogo. E se você quiser, você também pode imprimir o índice aqui. Assim, por exemplo, você pode conectar esse índice e você pode ver aqui o número de índices que estão sendo impressos. E o que você pode fazer em vez de hard-coding aqui, você pode realmente, pode realmente conectar plugin em variáveis em vez de usar hardcoding. E também outro para loop. Em vez de usar apenas o loop for, temos algo chamado For loop com uma pausa. Então o que um loop for é, um acompanhamento com quebra é que parece
apenas, assim como o for-loop de antes de termos o índice, primeiro índice e o último índice que podemos definir. E também temos o corpo do laço. Então, o que você quer fazer? Por exemplo, a impressão de Olá. E quando estiver concluído, o que você quer fazer? Mas desta vez temos uma pausa. Então aqui você pode ver que temos um, um, um, um, um pino de execução extra. Então vamos falar sobre esse intervalo. Então, aqui neste exemplo, vamos fazer um loop de algo. Então, por exemplo,
podemos fazer um formato de texto para este. Então formatar o texto, eu vou escrevê-lo aqui para o meu texto. Ok, então nós temos um texto formatado e nós podemos escrever algum tipo de aliança. Para que possamos escrever que o Sww tem sido executado. E podemos escrever entre parênteses encaracolados como aprendemos antes. E não importa o que escrevemos, feche os parênteses e podemos escrever tempos. Ok, então agora temos o 0. Podemos realmente colocar este índice dentro deste texto formato. E ele vai dizer que este loop foi executado, por exemplo, 15 e depois vezes. Ok, então agora eu tenho esse formato de texto e nós queremos imprimir na tela. Vamos imprimir cordas conectadas. E agora vamos anexá-lo à string. Isto é o que queremos fazer um loop. Certo, e quando estiver concluído, vamos dizer que o loop está completo. E vamos tentar compilar e clicar em Reproduzir. E você pode ver, na verdade eu quero fazer isso mais longo, então é muito mais fácil para você ver. Desaparece da tela tão rapidamente. Você pode ver que ele diz que este loop foi executado cinco vezes, de 0 a cinco vezes. E esta quebra é, é que podemos realmente quebrar este loop no meio do loop. Por exemplo, se esse loop foi executado muitas vezes. Então, por exemplo, digamos que temos 1, 0, 0, 0, 0. Então, se eu compilar e clicar em Salvar, você pode ver que este loop foi executado para esta quantidade de vezes. Mas e se quisermos quebrá-lo? Se atingir 20 ou se atingir acima de 20 vezes. Então não queremos executá-lo mais de 20 vezes. Então o que podemos fazer é realmente usá-lo como uma pausa. Então aqui precisamos de um evento. Então vamos criar um evento personalizado. E aprenderemos sobre isso. Basta escrever personalizado e clicar no evento do cliente, chamá-lo de algo. Podemos chamá-lo de quebrar o loop, por exemplo. E os eventos dos clientes, temos que nos conectar com o intervalo, certo? E lembre-se, os eventos não funcionarão se você não chamá-los em qualquer lugar. Então o computador realmente não sabe quando executar isso. Então, se você clicar em Jogar, nada realmente acontece porque você nunca chama este evento, você nunca chamá-lo em algum lugar. E você tem que chamar este evento dentro do corpo do loop. Porque se você clicar em jogar e você estiver indo para loop, você vai terminar este loop antes de fazer qualquer outra coisa. Então você tem que chamá-lo dentro deste loop se você quiser quebrar o loop. Então aqui eu vou dizer, se esse loop está looping maior do que 12 vezes, ele
está parecendo mais de 20 vezes? E se isso for verdade, se isso for verdade, então queremos quebrar. Então eu vou chamar este evento aqui. O que você pode fazer é escrever o nome dele, quebrar o loop. Isto é o que chamamos de evento. Então, se for maior que 20, então quebre o loop. Caso contrário, se não for maior do que 20, vá em frente e continue imprimindo esta mensagem. Ok, então vamos compilar e clicar em jogar. E você pode ver aqui, agora estamos executando o loop na verdade 21 vezes porque nós também estamos contando o 0. Mas agora você pode ver que nós realmente quebramos o loop e ele diz que o loop está concluído. Então é assim que você usa um loop quebraria enquanto o for-loop sem a quebra vai loop tudo sem qualquer quebra. Mas lembre-se, se você usar o loop for iria quebrar, você tem que chamar este evento dentro do corpo do loop. Vamos ao próximo vídeo e falar sobre o loop while.
33. Enquanto o Loop: Então vamos falar sobre o loop while aqui. Vamos passar para o evento de início do jogo. E a partir daqui vamos arrastar para fora e maduro para loop ou um loop while. Isso é o que, isso é sobre, o loop while. Então agora temos esse loop while e isso é antes de eu falar sobre isso, isso é muito perigoso de usar. Você quase nunca deve usá-lo em seu jogo. Você deve usar os outros loops. Mas vou te mostrar por que isso é perigoso. Porque vamos, vamos criar uma condição aqui. Então, por exemplo, vamos criar um booleano e vamos chamá-lo está morto. Agora estamos perguntando se o jogador está morto ou não. Foi transformado em booleano. E você pode ver aqui este é um array agora, então ele foi alterado de volta para uma variável normal. Vamos tirá-lo. E agora está perguntando, é o jogador que vamos conectá-lo. Então isso é muito simples. É o começo do jogo. E isso enquanto loop está perguntando, é o jogador, o jogador está morto ou não? Então agora vamos olhar dependendo se o jogador está morto não estão. Então, neste momento, o plano não está morto. Então, não vai fazer loop. Então vamos imprimir uma mensagem. Então agora vai dizer como o pai da pleura. E só, isso só vai fazer loop se a condição for verdadeira. Então, agora o jogador está, não está morto. Então não vamos, não vamos imprimir nada. Então eu vou clicar em Reproduzir. Você pode ver aqui que não está fazendo nada. Mas se o jogador está morto, queremos fazer um loop, por exemplo. E agora está ficando perigoso porque você pode imaginar isso. Quando é que isto vai parar? Este é um loop infinito. E isso nunca vai parar porque o jogador está morto. E sua urina, você está dizendo enquanto o jogador está morto. Então este é o loop selvagem. Enquanto esta condição é verdadeira, faça um loop neste corpo. Está bem? Então ele vai fazer um loop nesse corpo até que o jogador não esteja mais morto. Então agora nós dissemos isso a verdade, e nós realmente não especificou quando o jogador não é mais isso. Então, vamos clicar em Reproduzir e isso vai falhar porque este é um loop infinito. Então, se eu clicar em Jogar, você pode ver aqui é, ele está atrasando. Agora ele vai dizer loop infinito detectado. Então este é um loop infinito. Então, enquanto isso, enquanto esta condição é verdadeira, loop, este corpo. Ok, então outro exemplo melhor para desistir disso, vamos fazer um inteiro em vez de uma variável estática ou estática. Então vamos deletar esses. Vamos passar por cima e fazer uma nova variável. E vamos, na verdade, apenas usar esses passos tomados variável. Então vamos tomar essas medidas tomadas variável. Isto é um número inteiro. E podemos dizer que enquanto este número é, é maior, erupção um pouco menor, enquanto este número é menor. Depois 10. Esta é a condição. Então, enquanto isso, enquanto os passos tomados como decréscimo, você vai fazer um loop de algo. E quando isso estiver concluído, você vai imprimir que está completo. E para o corpo do loop, lembre-se, enquanto os passos dados estão abaixo de 10, então temos dois enquanto ele está looping mais ele. Então, vamos tirar essas etapas tomadas, e vamos fazer mais. Então, vamos adicionar um a ele toda vez. Então lembre-se, mais, mais é adicionar um ao valor especificado e, em seguida, definimos. Certo, e agora vamos imprimir. A quantidade de etapas. Bem, este é o nosso corpo. Então, agora o que estamos fazendo é, enquanto os passos dados estão abaixo de dez, nós vamos fazer um loop nisso. Vamos mais um passo e, em seguida, imprimi-lo para esta string. E vamos fazer um loop até que os passos tomados estejam acima de 10. E quando isto terminar, vamos dizer que está completo. Então vamos compilar clique em Reproduzir. E você pode ver aqui, é assim que funciona. Você clica em Reproduzir novamente, você pode ver isso aparece novamente. Então é assim que você usa os loops while, mas tenha cuidado com os loops while. Eles podem criar loops infinitos com bastante facilidade.
34. Faça uma vez e fazer o a que o a que o que a a a de de a a de de a a uma de: Ok, então vamos falar sobre os dois e fazer notas finais. Então vamos voltar ao Level Blueprint e abri-lo aqui. Bem, vamos começar com o, vamos usar o evento de chave F para este exemplo. Então, se o teclado e nós podemos escrever aqui, fazer uma vez, e agora nós temos o fazer um nevado. Então, o que eles fazem uma vez nó vai fazer é que ele vai disparar um certo, certo código apenas uma vez, e ele não vai disparar novamente a menos que você redefinir o código, reutilizar este reset. Então, por exemplo, ele vai dizer, vamos fazer algo divertido, Vamos escrever recarregando. Então você está recarregando uma arma. E você só pode fazer isso uma vez. Porque você pode ver aqui se eu clicar em Reproduzir e eu clicar f, diz recarregar, se eu clicar f novamente, nada acontece. Eu não posso clicar em Africano porque este é o dual-nevado. Você só pode fazer isso uma vez e você tem que redefinir antes que ele possa fazê-lo novamente. Então vamos fazer outra chave, e esta é a tecla G. E aqui eu fiz um número inteiro. Eu posso fazer isso de novo. Vamos fazer isso de novo, só para praticar. Faça uma nova variável chamada balas. E isso deve ser um inteiro. Leve-o aqui para baixo. E toda vez que você atirar, ele vai para menos 1 bala. Então vamos começar com 20 balas. Então, faça o valor padrão de 24, essa variável. E toda vez que você pressiona vai para placas de menos. E vamos imprimir isso, essa quantidade para a tela. Então vamos fazer um formato de texto só por diversão para que possamos escrever. E você tem isso. Vamos você tem, em seguida, colchetes para fazer os marcadores de texto dinâmico esquerda? E aqui podemos ligar a quantidade de balas. Então ele vai dizer que você tem, por exemplo, 15 balas restantes. E vamos ligar isso à corda aqui. Ok? E agora podemos experimentá-lo. Então eu clico em Play e clique em G. Então agora você tem 16 balas restantes, 15, 14, 12, assim por diante. Ok, então isso é, agora que está funcionando. E digamos que se estamos, somos iguais ou iguais. 0 balas. Se isso for verdade, então podemos recarregar. Então, por exemplo, aqui, podemos ter que fazer um evento personalizado para que ele seja redefinido. Então vamos fazer um evento personalizado certo, cliente. E para isso podemos chamar e recarregar, conectá-lo ao reset. Então agora temos que redefinir, temos que chamar evento, lembre-se que temos que chamar eventos para que eles funcionem. Então aqui quando tivermos 0 balas e isso for verdade, vamos chamar o evento e redefinir o nó deste para que possamos fazê-lo novamente. Então aqui podemos escrever, pode recarregar para chamar o evento. Então agora é quando você tem 0 balas, ele vai redefinir. Então, podemos recarregar de novo. Então, vamos em frente e clique em Reproduzir. E você pode ver que há um bug que eu posso realmente recarregar mesmo que eu tenha balas para começar. Então podemos realmente começar fechado. Ok, isso é o que começar fechado significa. Então, se eu clicar em f Agora não vai funcionar. Eu vou atirar em pessoa fazer. Se eu tiver 0 balas sobrando, eu posso clicar em F. Agora pode recarregar. E se eu clicar em f novamente, não vai funcionar porque este é o novo nó. Tenho que atirar de novo. Mas agora eu posso ver que eu tenho um bug porque eu realmente não disse para
ele reiniciar. Mas você pode fazer isso aqui. Você pode realmente pegar a quantidade de balas e você pode ajustá-la de volta para 20. E vamos tentar de novo. Podemos jogar. Você pode atirar as balas. Você pode pressionar F, você pode recarregar. Você pode começar a atirar de novo. Mas agora você ainda pode ir e menos eu realmente não verifiquei parte disso, mas você não pode recarregar. Você pode começar de novo na outra regra do futebol. Então, foi isso por enquanto. Eu só queria explicar que uma vez nó e isso é o que ele faz. Ele reproduz um determinado código apenas uma vez até que você realmente o redefina,
se você o redefinir. Então a próxima coisa é o nó do n. Então, isso é quase o mesmo. Talvez você possa adivinhar. Você pode fazer um determinado código n vezes. Então este é o nó. Não vou explicar muito, mas o que você faz é o mesmo princípio. Você tem. Você pode fazer uma determinada ação várias vezes. Então, por exemplo, três vezes. Então você pode imprimir ou você pode dizer, aqui está o dinheiro três vezes. E quando você faz isso, você tem que redefinir. Então vamos usar a tecla G para redefinir antes que eu possa te dar dinheiro de novo. Então temos que clicar em Play e eu clico na Terra, aqui está o dinheiro, aqui está o dinheiro, aqui está o dinheiro. E eu não posso pressioná-lo novamente porque eu disse o n aqui, Eu disse o enter três vezes. Então eu tenho que pressionar G para reiniciá-lo, e então eu posso pressionar F3 vezes novamente. Então, quase o mesmo que fazer o nó de um, mas este é o nó de dueto. Você pode definir quantas vezes você deseja fazer um código específico. Então, por exemplo, você dá dinheiro a alguém e você tem que
fazer um certo trabalho para pesquisar antes que eles possam lhe dar dinheiro novamente.
35. Portão: Olá e bem-vindo de volta. Então vamos falar sobre nosso último nó de controle de fluxo. Então vamos em frente e clique em Blueprints e abra o nosso Level Blueprint. E o que vamos falar hoje é sobre o nó do portal e do OR. Então vá em frente aqui. Vamos fazer o nosso Begin Play. E vamos ligar ao portão. Então, saia da caneta de execução e solte o portão. E aqui você pode ver o portão e o nó do portal msi. Então vamos começar com o nó do portal. Ok, então o que mais uma vez nota
é, simplesmente você pode imaginar como um portão em um castelo. Então você pode fechar o portão e você pode abrir o portão. E quando o portão estiver aberto, você pode executar algum tipo de código aqui. E se você fechar o portão, este código não será executado. Portanto, este é o principal princípio desta nota. Então deixe-me ir em frente desconectado aqui. Talvez eu queira usar uma tecla de teclado. Isso seria mais fácil. Então vamos usar a chave, a chave em vez disso. Ok, então na nossa imprensa E, deve disparar ou algum tipo de código para que possamos disparar isto e vê-la mais baixa por enquanto. Ok, então se eu clicar em Jogar e eu for até aqui no ponto E, você pode ver que nada acontece. E isso é porque o portão começa fechado. Então palavras falsas, costas baixas e você pode ver aqui ele diz começar fechado e isso é o que significa para o portão está fechado. Posso disparar qualquer um destes códigos aqui. Então, se eu abrir e compilar como play, clicky, você pode ver que eu estou dizendo olá e agora o portão está aberto. Certo, então um exemplo para usar isso é, por exemplo, se o jogo estiver pausado, você não quer disparar esse código. Este é um dos exemplos que você pode usá-lo. E há vários exemplos para quando você deseja que algum determinado código não seja mais executado. Então você pode fechar o portão e escolher quando abri-lo. Então deixe-me mostrar-lhe como fechar e abrir os portões. Ok, então vamos, vamos fazer um cluster eventos. E esses eventos de clientes serão chamados de portões abertos. E vamos fazer outros eventos personalizados. E vamos chamar isso de portas fechadas. Então temos dois eventos personalizados. Procure-os no portão aberto e fechado. E agora vamos ter um, vamos ter a tecla R. Então este vai abrir o portão chamado O, chamado o evento. E quando pressionarmos R, vamos abrir o portão. E eu poderia ter feito isso assim, como se conectar ao portão aberto e isso iria, isso iria realmente apenas abrir o portão quando eu pressionar R. Mas eu só quero mostrar para um cliente eventos. Porque quando você joga um jogo ou quando você desenvolve um jogo, geralmente você não tem realmente, você não tem teclas, teclas teclado conectadas a isso. Você tem eventos de clientes. Então eu vou conectar o evento de cluster na pedra. E o que você quer fazer é apenas chamado de evento de cluster para que ele, para jogar este evento. E vamos fazer do TQ o que fecha os portões. Pessoal, tenho um portão aberto e fechado. Bom. Agora vamos compilar e clicar em Reproduzir. E agora o portão está aberto para começar. Sempre que prosseguirmos, podemos dizer olá. E se eu pressionar o Tiki, ele fechará o portão. E se eu clicar em E, nada acontece porque o portão está fechado. Se eu clicar na nossa tornozeleira você de novo, o portão está aberto porque eu acabei de abri-lo com o RP. Então é assim que você usa o nó do portal que você tem. Isto é tecnicamente um portão. Você pode imaginar um portão e uma vida real e você pode fechá-lo e abri-lo. E quando ele estiver aberto, você pode disparar este código que está aqui no pino de execução de saída. E se estiver fechado, este código aqui na execução,
e a caneta de execução de saída serão ignorados. E você pode optar por iniciá-lo fechado ou aberto. E aqui você pode alternar para que eu possa mostrá-lo para você. Vamos usar as arcas e conectadas ao botão. Agora vai ser aberto. Vou apagar esses eventos personalizados porque não os temos mais. E eu vou clicar em Play. Por isso, agora posso dizer olá. Se eu clicar, não posso mais dizer olá. Se eu clicar em Oregon, posso dizer olá. Então este alterna se você fecha ou abre o portão. Então vamos dar uma olhada nos multi portões. Nota. Então, se você escrever multi-gates, clique no nó. Este parece um pouco mais diferente, mas na verdade é o mesmo princípio. Então vamos desconectar isso. Deixe-me realmente apagar isso aqui. Não fique muito confuso. E agora podemos conectar isso ao nosso evento. Ok, então agora temos as diferentes saídas. Então, por exemplo, temos quatro saídas diferentes. Então você pode ver aqui temos vários pinos de execução em comparação com o, para o nó do portão. Eu posso colocá-lo aqui para que você possa compará-lo. E se o nó do portão do shopping, você pode disparar, você pode disparar um código diferente de forma controlada. Então aqui podemos dizer quilo um, olá para os três inferiores, e vamos ter um quarto e chamá-lo “olá quatro”. E agora podemos conectá-los às diferentes canetas. Ok, agora vamos clicar, Compilar e jogar e ver o que acontece. Então, se eu clicar em Jogar e eu clicar em E, chega aqui, ele diz olá um clicando em E novamente, associar a lei aos três inferiores e olá para, ok, então o que acontece aqui é quando você clica em E e disparando este multi portão, ele sempre é acionado para o primeiro porque você tem esse índice inicial. Assim, no índice inicial escolhe por onde começar nessas galhardetes. Então, se você escreveu e clique em Reproduzir, ele diria olá ou três. Então, se eu compilar e clicar em Reproduzir e eu clicar em E, ele vai dizer olá 3. Portanto, esse índice escolhe em qual caneta iniciar, e o padrão é menos1, então ele sempre começa do início. Então, quando você pressiona E e R multi-grade, ele sempre aciona este código primeiro. Quando você dispara este multi-estado, novamente, ele sabe que ele já disparou esta caneta de execução 0. Então ele vai para o um e disparar este código depois. Ok? E se você disparar a pequena e minúscula nota novamente, ele irá disparar o pino de execução dos dois e assim por diante. E quando finalmente chegar ao número três, vai parar o código. Então, vamos tentar compilar e clicar em Reproduzir. E vamos clicar e, il a 1234. E você pode ver se eu clicar em E
novamente, não vai acontecer nada. Então este é o nó do portal. Você vai reproduzir todo o código e US repetindo todo o código até a última caneta de execução. Não vai funcionar mais. E para fazê-lo funcionar novamente, como se você quiser reproduzir o código novamente desde o início, você tem que fazer esse loop. Isto é o que significa. Ele fará o loop do código novamente. Então, se você clicar em Reproduzir e clicar em E, Olá, 1, 2, 3, 4. E se você clicar em E novamente, ele começará a partir de um. Agora, agora você pode fazer o loop do seu código. Ok? E o último, isso é auto-explicativo, então é aleatório. Ele irá escolher um código aleatório a partir dessas canetas de execução. Então, se você clicar em jogar e clicar, você pode ver que escolhe Hill 04. Nós clicamos em Jogar novamente, ou um desajeitado novamente. Ele vai escolher sua lei 2 e assim por diante. Então, ele escolhe um pino de execução aleatória do escopo. E lembre-se se você não tem loop, ele não vai reproduzir este código novamente. Você tem que ter loop para que ele volte a tocar. Ok, então o que você pode fazer aqui, se você não tem nenhum, você não tem o loop e você quer redefinir o código. Você sempre pode deixar dizer que você está jogando em ordem. E aqui você quer redefinir. Então você está realmente indo para reproduzi-lo novamente e você quer controlar quando você reiniciar. Então vamos até aqui e vamos fazer um evento personalizado. E vamos chamá-lo de portões de reinicialização, jacaré, e vamos chamá-lo de jacaré recente e ligá-lo até lá reset. E aqui na tecla R, vamos chamar um Gator de reposição, que deveria dizer “Gates”. E vamos compilar. Certo, agora podemos redefinir os portões. Então, vamos clicar em Jogar, sorte até que o código seja concluído. E agora não há mais. Agora eu posso pressionar R e o portão é reiniciado e você pode jogar com o código novamente. Então é assim que você redefine. E você quer redefinir sempre que a pontuação é concluída e você quer colocar o código dentro do multi portão, enquanto a negação tem apenas uma caneta de execução. E você pode optar por abri-la e fechá-la. Ou você pode optar por ter um evento personalizado que irá alternar entre fechado e aberto.
36. O que são Enumerações?: Ok, então bem-vindo a esta seção sobre enumeração. E a propósito, parabéns, você chegou até agora. Este é um progresso muito bom e agora vamos entrar nas coisas mais divertidas. Espero que tenha se divertido aprendendo sobre as notas anteriores. Mas para mim eu acho que isso está ficando mais divertido agora. E também especialmente nas próximas lições onde começamos sobre aulas de blueprint e assim por diante. Então, parabéns, isso é muito bom. Então vamos em frente e aprender sobre enumeração. Então o que, uh, uma enumeração é, é apenas uma lista de itens. Então, por exemplo, você pode ter uma lista de vegetais, você pode ter uma lista de animais. Você pode ter uma lista de itens. Você pode ter uma lista de armas e assim por diante. Então é simplesmente uma lista de tudo o que você quiser. Também pode ser uma lista de seus movimentos de personagens. Então, por exemplo,
correr, agachar-se e assim por diante. Então este é um conceito muito simples e esta é uma lista
muito, muito poderosa que você pode usar. E eu uso isso o tempo todo. E vamos para a próxima lição e ver como podemos criar essa enumeração.
37. Como criar uma enumeração: Então, para criar uma enumeração, você tem que, vamos passar por cima e fazer uma pasta Blueprints. Você pode ver que eu já fiz isso. Se você não se lembrar de como fazer um, vou excluir este e clicar com o botão direito do mouse na pasta de conteúdo e escolher a nova pasta. Chame de plantas, e é bom ser organizado. E clique com o botão direito aqui à direita dentro desta pasta. E agora sob Blueprints, podemos criar a enumeração. E a convenção de nomeação para enumeração é e. Então eu sempre escreverei E no início, e vamos chamá-lo de movimentos de caracteres. Então, por exemplo, agachado, sprinting, e assim por diante. Então agora temos uma lista, um clique duplo na enumeração, e você pode ver esta guia aparecendo. Agora, isso é muito simples aqui você pode clicar em Novo para adicionar um novo item à lista. E aqui está o nome do item. Então, por exemplo, podemos agachar e eu posso chamar meu outro andar e correr. E posso adicionar sprint. E você pode adicionar o que quiser. Por exemplo, digamos poda. Você pode podar no jogo também. Então você pode adicionar um monte de itens é apenas uma lista e você pode até mesmo adicionar batatas e o que quiser. Mas isso realmente não faz sentido no movimento do personagem. Vou removê-lo e vamos clicar em Salvar. Então agora temos uma lista de itens. Então vamos em frente e usar esta lista que fizemos. Esta é a lista que fizemos. Então vamos passar para o Plano de Nível em que temos trabalhado. E dentro daqui, vamos fazer uma nova variável. E esta variável que vamos chamar de movimentos de personagens. Lembre-se sempre de chamar o que faz sentido. Então você se lembra qual é a variável. E para chamar isso, você pode ver aqui que temos enum. Já há muitas enums padrão que vem com o motor. E algumas delas eu nunca usei. Há alguns, tantos deles. E vamos até aqui chamar esse movimento de personagem E. Esta é na verdade a lista e que fizemos aqui. E você também pode procurá-lo. E isso é muito bom porque nós fizemos uma convenção de nomenclatura aqui nós fizemos um prefixo chamado E dois. Podemos encontrá-lo rapidamente. É por isso que você precisa fazê-los e apenas dizer movimento de personagem. E você pode ver aqui, esta é a enumeração. Então agora esta variável é uma enumeração. Você também pode vê-lo aqui também. E vamos segurar o Controle, arrastá-lo para fora. E você pode ver aqui agora temos uma enumeração no gráfico de eventos. E você também pode ver que a enumeração está funcionando,
por exemplo, apenas imprimindo. E ele sempre irá imprimir o primeiro valor que você tem em sua enumeração. No entanto, vamos lá e imprimir uma corda. Vamos conectá-lo à enumeração. E aqui estamos nós, agora estamos imprimindo
a enumeração que foram feitas. E vamos clicar em Play. E você pode ver aqui que diz agachar, não, na
verdade está imprimindo algo da lista. E correr é, na verdade, essa lista. Isto, estes são os valores padrão e você, você pode ver aqui esta é realmente a lista que fizemos dentro desta enumeração. E digamos, eu queria adicionar mais um movimento. Eu posso ir em frente dentro da minha enumeração, adicionar um novo movimento, e eu posso chamá-lo por hora patch agachado para, por exemplo. E ele pode escolher movê-lo para cima aqui. Você está movendo-o junto com agachado. Agora temos Croce dois. Se salvarmos e voltar para o plano de nível e clique na enumeração. Você pode ver que nós temos agora agachado para dentro de nossa lista. Então você pode imaginar que isso é muito poderoso. Você pode criar uma lista de qualquer coisa que você quiser, e você pode escolher o valor padrão. Você também pode manipular esses valores durante o jogo. Então vamos passar para a próxima lição e aprender como podemos comparar essa enumeração.
38. Comparar Enumeração: Ok, bem-vindo de volta. Então agora vamos aprender como comparar a enumeração. Ou assim como a nossa variável inteira ou variável flutuante, podemos, podemos escrever igual igual e podemos ter esses operadores e assim por diante. Podemos realmente comparar a enumeração. Então eu me arrastei para fora da enumeração. Você pode escrever igual. E você pode ver aqui é algo chamado igual e não igual. Então podemos realmente compará-lo. E você também pode não ser igual. E você pode realmente fazer isso fazendo a pergunta ou o ponto de exclamação e igual, isso significa não igual e linguagem de programação. Então agora eu posso ver aqui, agora
podemos comparar esta enumeração. Então, por exemplo, podemos dizer é, é a enumeração definida para sprint. E se isso for verdade para a enumeração é sprint, então não queremos que o jogador dispare a arma. Por exemplo, não quero que o jogador dispare a arma enquanto corre. O jogador só pode fazê-lo enquanto corre ou anda. Está bem? E se for falso, você não pode fazer nada, por exemplo, ou pode fazer outra coisa. E aqui, por exemplo, vamos imprimir. Se for igual a correr. Eu só vou imprimir não pode atirar. E se não for,
então, está tudo bem embarcar. E esta enumeração. Agora está definido para correr. Então agora ele vai dizer que você pode atirar. E agora diz que você pode atirar. E se você mudar essas enumerações para outra coisa, por exemplo, você está correndo ou você está andando, e você vai brincar. Agora está tudo bem atirar. Assim, você pode comparar uma enumeração e ver o que é, qual é o padrão. E, por exemplo, em um caso, você não quer que o jogador esteja atirando enquanto corre. Você pode tentar compará-lo. E se é verdade que o jogador é,
é um sprinting, então você poderia, por exemplo, ter feito uma visão booleana pode atirar. E você pode definir isso pode atirar para falso porque agora o jogador não pode atirar. E agora você pode, você pode sempre aqui, por exemplo, neste caso muito simples, se não for igual a sprint, você pode atirar. Mas é assim que ele pode ser usado.
39. Mudar na enumeração: Então vamos falar sobre alternar enumeração. E primeiro, vamos em frente e excluir o valor extra que adicionamos. Então volte para a enumeração que foram criadas aqui. E eu vou deletar o agachamento para porque nós realmente não precisamos dele. E vamos salvar. E vamos voltar ao Plano de Nível. Taylor arrastou nossa enumeração e agora tente escrever switch. Você pode ver aqui é algo chamado
ligar e a enumeração que você tem atualmente. Então isso trará uma grande coisa aqui e não se confunda. Isto é muito simples. Ele vai realmente alistar todos os seus, de seus itens de lista aqui. Então agora você pode executar um código dependendo do que você realmente quer aqui. Por exemplo, se você é um jogador está agachado, você deseja executar este código. Se você é um jogador está em execução, você deseja executar este código e assim por diante. Então você vai executar um código dependendo do que o jogador está fazendo. Por exemplo, se esta é uma lista de frutas, digamos, por exemplo, temos uma banana aqui, e temos uma maçã aqui. Então, por exemplo, se for uma maçã que seu jogador está segurando, você pode fazer isso. Se é uma banana, você pode fazer isso e assim por diante. Agora, neste caso, temos interruptor e genoma, e neste caso, por exemplo, podemos mudar a velocidade de movimento do jogador. Então vamos fazer uma nova variável e chamá-la de velocidade de movimento. E vamos mudar a variável para um flutuador porque precisamos de um número com decimais. E vamos trazê-lo para fora, segurar Alt e trazê-lo para fora para vendê-lo. E, por exemplo, para agachar-se, queremos definir a velocidade de movimento de 50. Isso realmente não significa nada agora. Estou apenas escrevendo números e podemos copiar colados. E nós podemos, quando o jogador está andando, eu quero que ele se mova um pouco mais rápido, então talvez 70. E quando você estiver correndo, vamos mover 100. Quando você está correndo, você vai mover 150. E quando você está podando diria que você não é capaz de se mover. Então eu vou configurá-lo para 0, 0, vamos conectar todos esses. E agora vai executar o código dependendo do que
o valor padrão de enumeração ou apenas o valor em geral é. Então vamos em frente e escrever uma string de impressão. Bem, vamos imprimir na tela. E vamos ligar todas essas velocidades de movimentos. Então nós podemos realmente ver que ele está imprimindo. Ok, então este foi o último e eu vou movê-los um pouco para ficar mais limpo. Pode ficar bagunçado muito rápido. Então lembre-se de limpá-lo e fazer essas linhas carregarem, mas eu não quero fazer o vídeo muito longo agora. Então, vamos salvar e clicar em Reproduzir. E você pode ver aqui o valor padrão agora é andar. Então ele vai definir o movimento de 270. E se eu clicar em Reproduzir, você pode ver que é, a velocidade de movimento é realmente 70. E se eu fosse, digamos sprinting, nosso sprinting, a velocidade de movimento será de 50. Então isso é muito poderoso e você também pode usá-lo em interfaces de usuário. E eu vou fazer um curso mais tarde sobre interfaces de usuário. E isso é muito legal porque você pode ter uma lista de janelas, por exemplo, Menu Principal. Você pode ter a tela de seleção de caracteres, você pode ter a tela de perfil e assim por diante. E você pode realmente executar um determinado código dependendo de qual janela ele é. Então estas são enumerações. Eles são muito fáceis de aprender. É só uma lista. E se você quiser adicionar mais à lista, volte para a enumeração que você criou, adicione mais algumas coisas à lista e volte e elas aparecerão aqui. E então você pode adicionar mais codificado dependendo do que você precisa fazer para cada um desses pinos de execução.
40. Exemplo de enumeração: Olá e bem-vindo de volta. Antes de passarmos ao próximo assunto, vamos ver um exemplo. Então, se jogarmos, isso é o que vamos fazer. Vai dizer bem-vindo amigo, por favor pressione E para comer uma fruta aleatória. E agora, quando pressionamos
E, e ele vai dizer, ele vai escolher uma fruta aleatória. E, neste caso, escolheu uma banana. E ele vai dizer que você está com fome metros agora 20 lol. Se quiser comer mais, pressione R. E agora, se pressionar R, pode comer mais. E então ele escolhe um morango desta vez. E da próxima vez que você pode escolher outro, é um coco e assim por diante. Então, e os medidores de fome subindo cada vez que comemos algo. Então vamos fazer este exemplo e vamos usar o que aprendemos até agora. Vamos em frente e puxar o Plano de Nível. Ok? E o que queremos começar é a nossa habitual carrinha começar a jogar. Então comece a jogar. E aqui queremos imprimir um texto. Então vamos imprimir olá amigo. Pressione E para comer um grupo aleatório. Certo, e agora temos que fazer a tecla E, então escreva na tecla E do teclado. Então agora temos esse evento, e quando você clica em E, você quer comer uma fruta aleatória. Quanto à fruta, temos de fazer uma lista de frutas. Então temos que fazer uma enumeração. E vamos passar por cima. E você pode ver que eu tenho isso do meu outro vídeo. Então eu quero excluí-lo por enquanto para que você possa ver como você faz isso. E eu posso clicar com o botão direito do mouse e fazer blueprints, enumeração. E aqui eu posso chamá-lo de frutas E. Certo, vamos dizer tudo. Vamos entrar nesta lista e fazer uma nova rota para que isso realmente não importa. Então escolha o que quiser. Podemos fazer morango de novo. Eu só vou escolher a mesma comida que eu tenho. Coco. E o último era como mamilo. Ok, então você pode adicionar quantos quiser. Temos estes quatro por enquanto. Vamos fechar a enumeração e voltar para o Plano de Nível. E aqui, quando você pressiona E, você deseja selecionar uma enumeração aleatória. Mas vamos fazer a variável e chamá-la de fruta. E vamos mudar o tipo de variável para nossa lista de enumeração. Então frutas E, isso é o que chamamos, e selecioná-lo aqui. Então arraste para fora e arraste para fora a enumeração e segure tudo para que possamos vendê-lo. E agora queremos configurá-lo para um C aqui, e vamos copiá-lo colá-lo quatro vezes. E vamos mudar o, o valor aqui também, todas essas frutas diferentes. Então, quando você pressiona E, queremos selecionar uma fruta aleatória aqui. Então, da maneira que podemos fazer isso, podemos realmente usar nossos multi portões. Então você usa o multi portão aqui e conecta quatro pinos a ele. Então adicione mais pinos que, e vamos adicioná-los aqui. Ok? E podemos tomar aleatoriamente, então ele escolhe um desses randoms e podemos conectar o botão. Então, agora, quando clicarmos em E, ele vai escolher aleatoriamente um desses pinos. Então ele vai escolher e definir nossa variável de fruto para uma dessas frutas aleatórias. Então, se prosseguirmos, há uma chance de escolher este alfinete e nossa fruta será ajustada para coco. Ok, então quando a fruta está definida para um valor específico, nós queremos comer a fruta. Então queremos fazer um evento personalizado. E vamos chamá-lo de comer frutas. E aqui vamos começar com a impressão do texto. Então vamos imprimir UV. Na verdade, quero te ensinar outra coisa. Vamos fazer algo diferente aqui neste, neste tutorial porque eu quero te ensinar algo novo. Vamos tirar essa variável de fruta. E podemos usar algo chamado Select. Isto é muito útil. Então, o que um select
é, ele seleciona uma dessas opções dependendo do seu valor aqui é. Então, se você definiu sua variável para coco, ele vai fazer o que você disse aqui em coco. Então agora você pode ver que tudo está acinzentado porque isso é porque estes são curingas. Você deve clicar com o botão direito do mouse e clicar em Alterar tipo de pin. Então aqui você tem que selecionar uma variável. E, por exemplo, eu quero, eu quero escrever um texto. Por exemplo, se você comer um coco, ele vai dizer, Oh meu Deus você comeu ou coco. Ou se você comer uma banana, vai dizer que você comeu uma banana. Então este é um texto ou uma string que depende de você. Então eu vou escolher o texto. E você pode ver aqui todos eles mudaram de cor. Eles agora são texto. Ok, então agora você pode realmente escrever algo, mas também mudou para outra coisa. Talvez você quisesse os números e então você poderia escolher os números, mas vamos escolher o texto, o texto, e eu quero mostrar o que ele faz. Então, selecione. Neste momento, se clicarmos em E, ele escolhe um destes aleatórios, vai configurá-lo para uma fruta aleatória. E se ele definir para abacaxi, por exemplo, ele vai dizer: “Legal”. Você ajuda um abacaxi. Ok? É tão bom comer um abacaxi. Então é isso que vai dizer. Ele sabe que o seu valor é abacaxi, e, portanto, vai selecionar este valor. Isto é o que selecciona é. Então depende de qual é o valor. Ele vai selecionar isso. Então, vai para aqui. Vai dizer “jovem”. Era uma banana ou meu Deus, um morango. Ou o último. Incrível. Um coco. Ok, então dependendo do que o valor está definido, ele vai selecionar. Então, por exemplo, se é coco, Ele vai selecionar e ver este, este texto. Então isso é o que um seletor é e podemos imprimi-lo para a tela. Então vamos ligá-lo. E agora ele vai imprimi-lo para a tela. E agora o que também queremos fazer, também
queremos fazer um medidor com fome. Então ele vai mostrar que seu emissor de fome está subindo. Então, dependendo da fruta que você come, você tem meninas diferentes, então aumenta com números diferentes. Mas vamos fazer uma nova variável e os corais chamam-lhe fome ou plenitude. Isso é com você e vamos torná-lo um inteiro. Ok, então agora temos uma fome e podemos usar essa fome e defini-la para valores diferentes. Mas agora temos que usar este
interruptor, ligar enum porque queremos valores diferentes para cada uma dessas frutas. Então o que podemos fazer com o interruptor no enum aqui, ou podemos, apenas por causa da prática, podemos usar a sequência que aprendemos. Então seqüência, ele vai fazer este código. E depois que ele terminar, este código vai fazer o que em suficiente. E agora ele vai ligar INO aqui. Então vai fazer isso primeiro. E então ele vai demitir esse cara aqui. E dependendo do que é, vamos definir a fome dois valores diferentes. Então, para banana, vamos definir para 20. E vamos colá-lo algumas vezes. E vamos mudar esses valores para valores diferentes. Algo como isto. Realmente não importa para o que você mudá-los. Isto é apenas um treino. Ok, então agora temos essa fome e vai
mostrar para a tela o que é o medidor de fome. Depois de fazer isso, podemos imprimir para esta tela. Ou podemos realmente fazer o formato SEX. Isso é muito melhor aqui. Então vai dizer que seu medidor de fome é agora. E depois temos um número. E vamos apenas dizer, legal. Se quiser comer de novo. Pressione R e mostrarei mais tarde sobre o que faremos o são um pouco mais tarde. Então vamos nos concentrar, focar nisso por enquanto. Então agora temos esse emissor de fome e queríamos
aumentar cada vez que você come alguma coisa. E você pode imaginar se, se nós o definirmos para algo assim, toda vez que você pressionar E, ele vai ajustá-lo para este número estático e ele nunca vai aumentar. Então precisamos de uma nova variável e vamos chamá-lo de medidor de fome. E este medidor de fome vai dizer este medidor de fome, perda, esta fome. Então agora temos 12 no total. E então vamos definir este medidor Unger. Ok, então agora nós temos este emissor de fome que é 0 para começar, e nós adicionamos 20 a ele. Então agora são 20. E da próxima vez que apertarmos o botão e comermos outra fruta, este valor será 20. E digamos que ajudamos um abacaxi depois disso. Então ele vai dizer, vamos colocá-lo aqui como o espelho da fome, que vai dizer 20 mais 80. E agora vão ser 100. Então, estamos adicionando o, cada vez que pressionamos, estamos adicionando a fome ao medidor de fome, que é o valor total. E ele vai definir o novo valor aqui. Então precisamos copiar colar este par de vezes. E às vezes codificar é assim. Você tem que copiar colar. Então vamos, vamos movê-lo para baixo. E eu posso realmente fazer isso de uma maneira mais inteligente, mas vamos mantê-lo bem simples. Não quero que seja muito confuso. Podemos sempre passar para cursos mais complexos mais tarde. Embora, vamos copiar, deve definir os fios emissores de fome aqui em cima também. E eu quero puxá-los para baixo e nós temos mais espaço. E vamos adicionar esta madeira. Isso foi conectar tudo para que ele possa ficar bagunçado rapidamente. Mas eu falei sobre que poderíamos fazer uma coisa mais inteligente. Nós podemos realmente fazer isso em uma função, mas vamos mantê-lo simples por enquanto e fazê-lo assim. Mas se você quiser vê-lo em uma função, eu posso, eu realmente não posso olhar para isso. Então eu quero fazer uma banheira assistindo rapidamente só para mostrar que você colapsa para funcionar. Isto é o que aprendemos antes. Você pode colaborar com a nossa função. E você pode chamar isso de “adicionar fome” ou algo assim. Provavelmente deveria ser chamado de plenitude. Não vai adicionar este número e isso, em vez de configurá-lo aqui, podemos realmente adicioná-lo à entrada aqui. Ok? Então o que isso faz, isso realmente adiciona uma entrada aqui no gráfico de eventos. Então agora podemos realmente adicionar fome aqui. E podemos adicionar os jovens, adicionar a fome aqui. E está passando pelo código, definindo a fome, colocando-a com o medidor de fome. E agora temos este medidor de fome. Então, na verdade, vamos fazer isso. Na verdade, aprendemos anteriormente como fazer as funções de colapso. E queríamos fazer coisas mais avançadas. Espero que não seja muito confuso. E vamos conectar tudo. E agora você tem mais fome. E agora queremos exibir esse texto. Então agora queremos exibir o medidor de fome, que vamos conectar aqui. E vamos imprimir isso na tela. Agora vamos imprimir este texto e vamos imprimi-lo depois que ele teve, acrescenta a fome. Vamos mover isso um pouco para baixo. Podemos conectar tudo isso à cadeia de impressão. Então, em vez de fazer uma string de impressão para cada um deles, você pode realmente conectado. Então, por exemplo, se escolher banana e você vai escolher banana, adicione a fome e depois vá para imprimir a corda. Então, todos estes não serão impressos porque lembre-se que o fluxo vai apenas para um lado. Ele vai por aqui. Certo, então agora imprimimos isso na tela. Vou torná-lo um pouco compacto. Ok, então agora ele vai imprimir na tela. E vamos ver o que acontece agora quando clicamos em jogar. Então, se eu compilar e clique em Reproduzir, vai dizer Olá amigo. E, na verdade, vamos fazer, este é o primeiro bug que temos ou não um bug, mas o primeiro erro, talvez precisemos fazer isso um pouco mais para podermos ver o que está acontecendo. Assim como este. E vamos compilar uma jogada rápida. Vai dizer olá amigo, pressione E para comer uma fruta aleatória. E vamos pressionar E e nada acontece. E vamos ver por que isso é. É só porque nunca chamámos o nosso evento de comer fruta. Lembre-se que temos que convocar eventos antes que funcionem. Por aqui, escolhemos uma fruta, mas nunca vamos até aqui. Então vamos chamar o evento dizendo comer frutas. E vamos conectar tudo. E vamos compilar e clicar em Reproduzir novamente, pressione E. Agora ele diz jovem que era uma banana, você está com fome medidor. Sexualmente torná-lo um pouco mais longo aqui. Agora está funcionando. O código está funcionando agora. E quero te mostrar mais um inseto. Vamos brincar e comer. Aqui diz Nice, você come um ananás espelho Yolngu agora tem 80. Legal se você quiser comer novamente, pressione R. Mas na verdade como um clique E novamente para comer. Não preciso pressionar R. Então temos que consertar esse erro. E na verdade não é possuir uma estaca, temos que adicionar mais algumas coisas. Então aqui quando você pressiona E, Lembre-se de um multi portão dá-lhe a opção de executar todas essas canetas. Então você pode ver se eu pressionar E, eu posso pressionar F4 vezes 1234. E se eu clicar no ícone Mais, pressione mais. Mas o Watergate dá-lhe a opção de,
para jogar todas estas canetas. Mas só queremos comer uma banana e queremos, ou queremos comer uma fruta e queremos pressionar R para comer de novo, não
queremos comer o tempo todo. Então vamos fazer um booleano e chamá-lo pode comer, mudar o tipo de variável para booleano. Bem, ele fora. E então diga, se você pode comer. Se isso for verdade. Ok, se você pode comer, se isso for verdade, você pode comer, então vá em frente e faça isso. No entanto, se você não pode comer, então não faça nada. Então, se você pode comer, você pode ir em frente. E então aqui, quando comemos algo, quando eu clico em E e ele diz que comer frutas vai realmente definir isso para falso. Agora você não pode comer mais. E o valor padrão aqui deve ser verdadeiro porque no início do jogo, eu posso comer. Portanto, o valor padrão precisa ser verdadeiro. E quando comermos uma fruta, vai ser falsa. Então, se eu tentar clicar em E
novamente, não vai fazer nada porque eu não posso comer. Isto vai ser falso. Quando eu for a este evento. Se eu clicar em Jogar e agir como E, Sim, eu posso comer, mas se eu clicar em E Again, eu não posso mais comer. Certo, então vamos fazer o botão. Bem, a última coisa, o botão R se eu quiser comer de novo. Então isso é muito simples. Acabamos de definir a comida como verdadeira e podemos realmente ir em frente e comer de novo. Então vamos compilar e clicar em Reproduzir. Ele pode comer. Se eu clicar em ie, eu não posso comer mais. Se eu clicar em R e E novamente, então eu posso comê-lo. E você pode ver que eu posso pressionar R e E de novo e de novo. E depois disso não temos mais fruta. E é isso que você comeu toda a fruta. No entanto, se você quiser redefini-lo, você sempre pode configurá-lo para loop. Ou você pode usar um evento personalizado para redefinir e fazê-lo dessa maneira. Então agora aprendemos sobre a enumeração. Você também pode configurá-lo para valores específicos. Usamos o portal Maasai, usamos a sequência. Você aprenderá a usar booleanos para realmente parar o código de acontecer até que ele seja definido novamente. E também usando este select que é algo novo e o interruptor na enumeração. E também como colapsar para uma função. E nós podemos realmente anexar para as variáveis, para as entradas de função. Então ele aparece aqui e você pode realmente adicionar um valor. Ele passa pelo código, e depois adiciona-o ao medidor de fome. Então agora a fome e os medidores atualizados e podemos imprimi-lo para a tela. Espero que isso tenha sido útil para você e se você precisar de alguma ajuda com qualquer um deles,
por favor, não hesite em vir e está certo
no servidor Discord ou em qualquer uma de nossas redes sociais. Estou disposto, mais do que disposto a ajudá-lo. Espero que tenha se divertido e passemos para a próxima lição.
41. O que são cursos de impressão de are o que são de are: Olá e bem-vindo a esta seção. Então agora nós vamos realmente ir para as coisas mais avançadas. E isso vai ser divertido agora, porque isso é realmente aulas de
projeto são aqueles que vão trabalhar com o tempo todo. E também é a primeira coisa com que vamos trabalhar quando fizermos nosso primeiro videogame. Então estes, isto vai ser divertido. Agora, aprendemos todos os conceitos básicos, todas as enumerações, fluxos de
execução, matrizes, eventos, macros de função. Já vimos as variáveis e todos esses fundamentos. E agora vamos falar sobre atores do Blueprint. Então, para fazer um ator blueprint, você tem que clicar com o botão direito aqui e você pode criá-lo por aqui, Blueprint, classe Blueprint. E para quem faz um copo. Você também pode ir até aqui e plantas. E até agora aprendemos sobre enumeração, a biblioteca de macro de blueprint,
a biblioteca de função de blueprint. E agora vamos mergulhar na planta das aulas. Então, quando você clicar aqui nos óculos de blueprint, você pode ver aqui que você tem diferentes coisas que você pode escolher. Assim, no Unreal Engine, você pode criar diferentes blueprints e você pode escolher o tipo de blueprint que deseja criar. E tudo isso é essencial para nós no jogo. Por exemplo, temos o modo de jogo, temos o controlador do jogador, temos o personagem, temos sobre, e temos um ator. Então vamos para as próximas lições. E nas próximas lições, estes serão shorts porque vamos mais em profundidade com eles quando criarmos nosso jogo. Mas eu quero, nas próximas lições, explicar a vocês em breve o que cada uma delas é.
42. Ator: Então, em primeiro lugar, o mais simples Blueprint Class é o ator. E você pode ver aqui que um ator é um objeto que pode ser colocado ou gerado no mundo. Então um ator não é algo que você controla. Não é um personagem. E ator é apenas um objeto simples, EUA nascido no mundo. Então, por exemplo, se você capturou o modo de vôo, você vai capturar a bandeira. Flag é um ator, por isso também pode ser, por exemplo, uma lareira. Então você tem uma lareira. Então qualquer tipo de objetos que podem ser colocados no mundo e não é um ator, não
é algo que você controla. Então, por exemplo, isso também pode ser uma tabela na qual você coloca as coisas no jogo. Então este é o mais simples, e isso é o que um ator é.
43. Pawn: O próximo é um Po1 e sobre você pode realmente controlar. Então um pon é um ator que pode ser possuído. E o que possuiu significa é que você pode realmente controlá-lo com suas teclas, com seus teclados. Então AW, DNS e receber entrada de um controlador. E o controlador é, na verdade, este aqui e o controlador do jogador. Então o que é, na verdade
é algo que pode ser controlado. Mas digamos que queríamos fazer um jogo e realmente queremos esta esfera aqui. Queremos controlá-lo. É o nosso caráter. Nós podemos realmente transformá-lo em um sobre. E podemos usar nosso teclado para se movimentar com isso. Com a esfera. Há em y, nós não estamos fazendo isso em um personagem é na verdade porque não é uma coisa de aparência de personagem. Então podemos imaginar um personagem com dois braços, dois gostos. Não é assim, é só uma esfera. E podemos usar isso como sobre e sobre pode receber entradas para que possamos realmente mover esta esfera. Se esse medo fosse um ator, não
seríamos capazes de usar o teclado para mover essa esfera.
44. PERSONAGEM: Ok, então o próximo é um personagem. E um personagem é um tipo de pon que inclui a capacidade de andar por aí. Então você pode imaginar como um personagem com dois braços, duas pernas que podem andar por aí. E, portanto, aqui nós o tornaríamos em um personagem e não em um lago. E aqui ele diz que um personagem é um tipo de pornografia. Então, na verdade, esta é uma subclasse disso. Isto é, na verdade, um Po1. E explicarei mais tarde por que isso é importante. Isso realmente não importa para você agora. Mas lembre-se que os personagens têm a capacidade de andar. E quando você tem um personagem, por exemplo, um contra-terrorista ou um terrorista em Counter-Strike, nós faríamos um personagem.
45. Controlador para jogadores: A próxima coisa é o controlador do jogador. E um controlador de fluxo é um ator responsável por controlar sobre, usado pelo jogador. Saiba quando eu tenho esse ponto aqui. Na verdade, este controlador de jogador é o que controla a minha pornografia ou o meu personagem. Então este não é como um controle, como você tem para o seu Xbox ou seu PlayStation. Cada personagem que se move tem um, tem um controlador ligado a eles. Então, por exemplo, se você tiver o jogador um e o jogador dois, cada um deles tem um controle. E dentro desta aula é onde costumo fazer o movimento. Então eu uso, por exemplo, se você precisa usar o W para seguir em frente, eu costumo fazê-lo dentro deste projeto. Então, cada um dos personagens que podem se mover, cada uma das lagoas ou personagens que podem se mover. Estes realmente têm um controlador de jogador e dentro deste projeto, você pode fazer o, o movimento. E eu realmente também faço a interface de usuário dentro deste controlador de jogador. Porque cada jogador tem que ver a interface. E você pode fazer isso através do controle do jogador. E posso mostrar uma carta sobre como podemos fazer isso.
46. Modo de jogos: Ok, então o último que eu quero falar é sobre o Modo de Jogo. E a base Demode define o jogo que está sendo jogado, suas regras, pontuação e outras facetas do tipo de jogo. Então este é o Modo de Jogo. Você pode imaginá-lo se você tivesse um modo de jogo dentro do seu jogo. Então, por exemplo, capturar a bandeira. Você tem que definir quantas vidas você tem? Você tem que definir quantos pontos você ganha por capturar a bandeira. Você tem que definir quanto, quantos minutos você tem cada rodada neste modo de jogo e assim por diante. Assim, o modo de jogo define as regras do jogo. E quanto aos últimos, não
vamos cobri-los por enquanto. Mas você também pode ver que temos muito mais outras aulas e estas não são importantes para você agora. Não se preocupe com tudo isso. Você pode ver aqui nós também temos jogo salvo, para que possamos fazer, podemos salvar o jogo e carregar o jogo, mas isso é muito complexo para agora. Então não se preocupe com todas essas aulas. Vamos nos concentrar nesses 12345. E então podemos passar para classes mais complexas.
47. O que são atores de impressão a marca?: Olá a todos e bem-vindos à seção sobre atores Blueprint. Então, o que um ator de plano é, você pode realmente montar vários desses itens. Por exemplo, um cubo. Você pode colocá-lo junto com uma luz e ele pode realmente misturar diferentes objetos juntos em um projeto. E então você pode usar esse projeto que ocorreu em
torno de seu nível para fazer algum projeto de nível. E com atores blueprint, você também pode fazer comportamentos como, por exemplo, moedas que seu personagem vai saquear e basicamente blueprint são atores estáticos que estão em torno de seu mundo. Então vamos em frente e aprender como criar um ator blueprint.
48. Como criar um ator de impressão: Ok, então aqui eu apaguei tudo para que possamos começar de novo. E vamos criar nosso primeiro ator de plantas. Então, em primeiro lugar, eu quero criar uma nova pasta chamada blueprints. E dentro desta pasta você pode clicar com o botão direito do mouse. E em Plantas, você pode encontrar algo chamado Brooklyn Blueprint classe. Ou você pode encontrá-lo aqui em cima, o que é muito mais fácil. Então, clique na classe Blueprint. E você pode ver aqui que essas diferentes classes de que falamos. E o primeiro, o mais simples, é o ator de plantas. Então vamos em frente e clicar no ator. E para as plantas, vamos chamá-los de BP no início para planta. E para este, vamos chamá-lo de poste de luz. Então vamos criar um poste de luz muito simples. E vamos clicar duas vezes nesse ator de plantas. E vocês podem ver aqui que temos algum tipo de cena que ainda não vimos. Agora dentro desta janela de exibição, você pode adicionar itens, e por exemplo, podemos adicionar os bugs e assim por diante. E aqui temos um roteiro de construção. Então isso é programação, e aqui podemos dizer ao ator o que fazer antes que seja, ou o que você faz na verdade quando ele é gerado imediatamente. Então aqui temos o gráfico de eventos que vimos anteriormente seria o Plano de Nível. Então isto é fixe. Agora estamos realmente trabalhando em rede no Level Blueprint. Agora estamos trabalhando em um ator. Então eu só gostaria de dizer a vocês uma diferença entre esses dois. Então, o azul, o plano de nível é,
é um esquema ou programação para este nível específico em que você está. Então, se eu fizer algo no Plano de Nível para esse nível, e eu seguir em frente e clicar com o botão direito do mouse e criar outro nível. Então, na verdade, este código que eu escrevi neste nível, blueprint para este nível específico não vai realmente ser levado para o novo nível. Então você tem que ter em mente se você fizer algo no Level Blueprint, e isso só vai ser específico para o nível atual em que você está programando. No entanto, se você fizer uma classe blueprint, este pode realmente ser usado em todos os seus níveis. Então, por exemplo, aqui eu tenho uma classe de blueprint, e este, você pode arrastar para o nível. Digamos que é porque agora está vazio. Nós não, nós realmente não adicionamos nada ao ponto de vista aqui. Então agora está vazio, mas você pode arrastá-lo para o nível. E você pode fazer isso para todos os níveis. Então esta é a vantagem de um plano de classes. Isto é muito poderoso. E lembre-se, se você fizer algo no Level Blueprint, este código será especificamente para o nível em que você está codificando. Ok, então vamos voltar para o porto de visão aqui. E consiste neste viewport e pode, whoops, eu tirei por engano. Então ele consiste na viewport e consiste no script de construção com apenas vende o ator o que fazer quando é gera. Então isso será disparado instantaneamente quando surgir. E aqui você costuma codificar coisas que você quer ter certeza que o ator fez imediatamente antes de fazer qualquer outra coisa. E, por último, o gráfico de eventos. Isso é exatamente como o Level Blueprint onde você escreve seu código e tudo isso. E este será este código aqui neste gráfico de eventos será específico para este ator de blueprint que você está trabalhando atualmente. Então vamos em frente e criar nosso poste de luz. E aqui no Gráfico de Eventos, você pode ver aqui à esquerda que temos componentes e vamos realmente falar sobre componentes em outra lição. Mas vamos em frente e adicionar algo a ele. Vou clicar no poste BP ou em qualquer lugar aqui e clicar em Adicionar. E vamos adicionar um cubo. Então, clique neste cubo. Você pode ver aqui nós adicionamos um cubo, bem como aqui. E nós podemos realmente redimensionar este cubo para que você possa ver ou se você redimensioná-lo. E eu realmente quero abrir esta fechadura porque eu não quero redimensioná-la uniformemente. E eu também posso ir em frente e usar a ferramenta de escala. E eu vou para a vista esquerda só para que eu possa levar isso acima do solo. Agora vá para a vista direita está parecendo bem. Vou voltar à perspectiva. Ok, então agora eu tenho algum tipo de poste de luz e realmente quero adicionar uma luz a ele. Então isso é muito legal. Você pode combinar coisas em uma classe Blueprint. Então aqui você pode adicionar novamente e adicionar uma luz, uma luz pontual, por exemplo. E este ponto mentir para, você pode verificar aqui. Ok, então isso é muito legal. E se eu compilar, salvar, eu salvar tudo. E deixe-me salvar este nível. E eu vou criar uma nova pasta, chamá-la de mapas. Na verdade, já fiz isso por mim. Dentro do Maps, deixe-me salvar isso e chamá-lo vamos chamá-lo de Tutorial Mapa novamente. Ok, deixe-me fechar este ator de plantas e deixe-me apagar esta nova pasta que eu fiz. Então aqui, esta é a sondagem de luz feita e isso é muito legal. Agora você pode ver que este ator planta realmente tem o cubo que adicionamos e também a luz. Então isso é muito legal. Você pode combinar objetos e colocá-los juntos. Em vez de entrar aqui e adicionar um cubo, redimensioná-lo. E então você adiciona a luz em cima dela. Deixe-me adicionar uma luz. Digamos que fizemos dessa forma. Mas então se você precisasse desse slide novamente aqui, você tinha que passar por cima e criar uma nova forma e assim por diante. Isso vai levar muito tempo. E, na verdade, também para as classes de blueprint, podemos adicionar código a esta classe. Então, por exemplo, se quisermos desligar a luz, se o jogador não
estiver, não estiver por perto, podemos codificar aqui que queremos desligar a luz. Certo, então podemos adicionar comportamento às classes de plantas. Então é assim que você cria uma classe de blueprint. E na próxima lição, Vamos ver como geramos essas classes de plano e como destruí-las.
49. Span e o: Olá e bem-vindo. Agora vamos falar sobre como desovar e destruir um ator. Então isso é muito simples. A primeira maneira de gerar um ator se você já sabe que o local especificado em seu nível. Por exemplo, se você quiser colocar moedas ao redor ou você está fazendo algum design de nível, você sempre pode arrastar para fora o ator e colocá-lo onde quiser. Assim como este. Mas esta é a maneira mais fácil de gerar o ator. Você também pode simplesmente segurar e segurar o Alt enquanto se move e você pode duplicá-lo. Agora esta é a maneira mais fácil e deixe-me ir em frente e apagar todos eles. A segunda maneira que você pode fazê-lo se você não
quiser gerá-lo imediatamente quando o jogo começa, você realmente quer gerá-lo durante a jogabilidade. Você pode ir em frente e vamos para os planos de nível. E vamos fazer uma jogada inicial. E vamos atrasar esta jogada de início fazendo segundos. Está bem? E agora temos que usar o nó aqui chamado ator Bonn da classe. Então agora vamos criar um ator. E aqui a turma é esta. Lembre-se, esta é uma classe de blueprint porque quando você clica com o botão direito do mouse e
criá-la, é uma classe de blueprint. Este é o ator que criou. Então, esta classe de planta, podemos encontrá-lo procurando pelo nome VP poste de luz. Ok, e agora ele está pedindo uma transformação. Então, onde você quer desovar este poste de luz? E um bom truque que eu quero mostrar-lhe, por exemplo, se você quiser um local especificado, por exemplo, se você quiser gerá-lo aqui especificamente, e você quer saber o local, pode sempre criar uma forma. Por exemplo, um cubo. Podemos mover o cubo para lá e tentar ajustá-lo. Um Gauss. Sempre tente ver esses locais e você pode clicar com o botão direito do mouse e copiar esse local. E então você pode fazê-lo e você pode colocá-lo na transformação. Lembrem-se que isto vai do ponto de pivô. Então, se o seu ponto de pivô estiver aqui embaixo, ele estará flutuando. Então você tem que tirá-lo. Você pode ver o valor z é 0, 1 Eu cheguei aqui. E isso é porque ele está tirando o valor disso naquele momento. Ok, então deixe-me voltar para o Plano de Nível. Então agora temos que especificar a localização, mas eu só quero gerá-lo no meio do nível, então é 000, 000. O que você pode fazer é quebrar ou pedir desculpas, fazer uma transformação. E make transform apenas faz a transformação para que você possa realmente inserir esses valores. O que você pode fazer também é clicar com o botão direito em Split Struct E isso vai dividir a caneta do caminhão e você pode escrever os valores. O que eu prefiro fazer é promovê-lo a uma variável. Então clique com o botão direito na variável promotor e você pode chamá-la de Transformar inteira. Posso tentar movê-lo para baixo. Então agora temos uma pole transform e se você compilar, podemos ver os valores padrão. E talvez eu queira que a geolocalização seja 15. Acho que este terreno está um pouco elevado, por isso não é para o subsolo. Vamos compilar e salvar. E aqui está a colisão. Se você tem colisão, você não pode. Por exemplo, podemos escolher tentou ajustar a localização, mas sempre divertido se você sempre quiser gerá-lo. Mesmo que alguns, algo esteja no caminho. Vamos clicar em Reproduzir. E depois de três segundos, isso deve gerar a pesquisa. Então eu vou clicar em “play”. Depois de três segundos. É só uma das sondagens. Então é assim que você cria um ator para o nível. Ok, então agora que nós geramos o ator para o nível, vamos aprender como destruir o ator. Então agora, quando clicamos em Jogar novamente, ele aparece depois de três segundos, mas podemos realmente destruir este ator se quisermos destruí-lo durante o jogo. E no caso, por exemplo, sobre moedas, se o seu personagem entrar em uma moeda, a moeda desaparecerá. E isto é o que se chama Destruir Actor. Você está destruindo o ator. A moeda não está mais no nível porque você já aludiu. Então vamos para o Plano de Nível aqui. E digamos que depois de três segundos novamente, vamos atrasar a desova. Depois de três segundos de novo, queremos destruir este ator. Então Destrua Ator. E agora temos que lembrar qual é o alvo? O alvo é este poste de luz aqui que nós geramos. Está bem? Então vamos até aqui. E o que você pode fazer aqui. Muito legal é esse ator que você gerou. Isto é o que queremos remover novamente, você pode clicar com o botão direito aqui e promover isso para uma variável e podemos chamá-lo de poste de luz. Ok, então agora nós temos, agora nós, esta é a primeira vez que nós realmente fizemos uma variável ator. Então este é o poste de luz da BP. Então nós desovamos, respondemos ao poste de luz, e este é realmente o poste de luz. Então agora nós criamos, promovemos para uma variável. Então nós podemos realmente usá-lo aqui, porque aqui nós queremos destruir o poste de luz. Agora você pode pegar essa variável listada aqui. Agora ele vai destruir este poste de luz novamente depois de desová-lo depois de três segundos. Bem, vamos compilar clique em Reproduzir e ver o que acontece. Então, depois de três segundos é responder. E depois de três segundos ele deve destruir o poste de luz. Agora é assim que você cria e é assim que você destrói atores dentro do jogo.
50. Componentes de cena: Então vamos falar sobre os componentes da cena e que já criaram alguns componentes do pecado. Então vamos clicar duas vezes na classe Blueprint do pólo de luz que criamos. E dentro daqui na janela de exibição, adicionamos o slide e adicionamos este cubo. Então esquerda total temos algo chamado componentes. E aqui você pode adicionar todos os componentes que deseja. Esta é, na verdade, a cena e todos os componentes que você adiciona a este blueprint até agora, por exemplo, uma esfera. E quero mover esse medo por aí, eu duplicei a esfera, ou realmente deixe-me duplicar a partir daqui. E eu posso movê-lo e digamos que é por aqui. E composto Save, você pode ver que aqui, isso é realmente composto de todos os elementos que eu coloquei na cena. Então isso é muito legal. Você pode projetar algumas coisas legais. Por exemplo, se você estiver projetando uma loja de moedas para o seu jogo, você pode projetar a casa. Você pode projetar o, o sinal de madeira. Você pode projetar a luz em torno dele ou o que quer que você é um afiado consiste em. Então sua loja não consiste em um elemento. Você pode realmente apenas colocar elementos juntos e fazer a loja como um todo. E então você pode arrastar isso para o nível e isso é muito legal. Então, esses são os componentes do blueprint, e esses são componentes que você pode adicionar ao nível. E você sempre tem uma raiz aqui, que é apenas o componente inicial padrão, e sempre pode substituir essa rota arrastando onde quer que você tenha em cima dela. E agora isso se torna a raiz. E veja isso é um pouco confuso. Assim, sempre podemos escolher o que fazer suas raízes da Classe Blueprint. Está bem? E agora não podemos mudar isso. Esta é a rota do plano agora. E se você quiser movê-lo, apenas controle Z e vamos desfazer o que fizemos. Então você pode adicionar mais coisas ao seu, adicionar mais componentes através deste botão Adicionar. E você pode realmente adicionar um monte de coisas. Por exemplo, áudio, você pode adicionar som. Você pode adicionar uma malha esquelética. Ainda não tocamos nisso. Você pode adicionar câmeras, você pode adicionar caixas de colisão. Nossas caixas de gatilho, sim. E você pode adicionar foi chamado de efeitos visuais e um monte de outras coisas. Então você pode construir uma cena inteira aqui são apenas para este elemento. Por exemplo, outro uso disso é que eu tinha uma lareira, e esta lareira consiste em muitos troncos e os efeitos de fogo no meio. Então eu tive que construir os troncos por aqui. E você pode construir o efeito de fogo no meio. E depois de construí-lo, você pode arrastá-lo para fora e colocá-lo na cena. Então estes são os componentes. Só por diversão, você sempre pode clicar aqui em um anúncio e ver o que acontece. E o componente de cena é apenas
um componente vazio aqui. Então este é um vazio. Isso não vai fazer nada, mas, mas o componente pecado, ele tem transformação para que ele possa ser anexado a outros componentes pia e você pode fazer coisas. E você pode tentar clicar, clicar em formas diferentes, tentar adicioná-lo e nada acontece. Você sempre pode excluí-lo depois, direito, para adicionar caixas de colisão, ver o que acontece. Então brinque, e estes são os mesmos componentes. E vamos falar sobre variáveis editáveis e expostas na geração. E a próxima lição.
51. Variável editáveis e expõe no Spawn: Ok, então vamos falar sobre as variáveis editáveis e expostas na geração. E o que é uma variável editável, você pode realmente tornar a variável editável e expô-la aqui. Então, por exemplo, isso é muito útil para designers. Digamos que você tirou a sondagem de slides. E, na verdade, você pode expor variáveis de tal forma que você pode editá-las aqui à direita. Então, digamos, por exemplo, se você quiser mudar a cor do poste de luz para ler, em vez de ir para dentro dos blueprints e alterar o código e torná-lo vermelho, você pode realmente expor a variável que o está controlando. E você pode mudar a cor aqui para a direita. Pode ver que isso é muito útil para pessoas que não conhecem plantas em tudo. Eles podem simplesmente ir em frente aqui
no painel Detalhes e alterar qualquer variável que você tenha exposto. E talvez isso seja, isso também é útil para programadores. Se você tem algo, você quer mudá-lo aqui e é mais conveniente. Então vamos em frente e ver como isso é feito. Vamos fazer algo com este poste de luz que criamos. Então vamos clicar duas vezes sobre isso. E aqui, vamos fazer duas variáveis. Então o primeiro é um booleano, e vamos chamá-lo de luzes intensas e os dez slides. Por exemplo, queremos que a luz seja intensa. Se isso for, isso será definido como verdadeiro. E vamos fazer outro chamado luzes ou descrição empurrada. Vamos apresentar este poste de luz está na loja de moedas e você tem que ler
a descrição e as pessoas vão ler a descrição e comprá-la. Ok, então isso é um texto, então isso é uma descrição. E vamos compilar. Então agora tem esses dois. E o que você faz é clicar em Instância editável. Então nós somos capazes de editá-lo e você é, e isso está sendo exposto na geração. Então vamos fazer o mesmo com a variável de texto aqui, e vamos compilar e salvar. Na verdade, vamos colocá-lo aqui. E você pode ver agora que você tem esses valores. Tão intensa luz, podemos pegar isso, este foi o booleano e esta é a descrição, por exemplo, este é o primeiro poste de
luz do mundo. No mundo. Ok? E a coisa legal sobre isso, você pode mudá-lo de forma independente. Então agora nós adicionamos uma descrição para isso. E você pode realmente fazer outra coisa por isso. Ok? Agora isso é muito legal. Você pode expor variáveis na geração e você pode realmente editá-las aqui em vez de entrar aqui e fazer algo com o código. Ok, então eu queria te mostrar algumas coisas que podemos fazer com isso. Então vamos fazer o Begin Play. E vamos fazer, vamos pegar essa luz intensa. E vamos criar um ramo. E se essa luz intensa for verdadeira, vamos pegar nossa luz pontual, que é o componente aqui, que temos. E estes componentes estarão aqui em baixo como variáveis. Você pode ver que temos componentes. Então esta é a luz pontual. E podemos fazer intensidade. E então você vê algo chamado intensidade definida. Então agora queremos definir a intensidade. Vamos configurá-lo para 50, e também vamos mudar a cor. Isto vai ser muito mais visual. Então vamos escrever cor e você vê algo chamado definir cor clara. Vamos tratar disto aqui. E vamos mudar a cor para algo que possamos ver. Por exemplo, assim. É realmente fazê-lo muito horrivelmente assim. E agora mudamos a cor e a intensidade. E se nada, se isso for falso, podemos definir a intensidade para um. Certo, agora precisamos de um alvo para isso. Então arraste para fora a luz do ponto e conectado a esta intensidade Compilar e salvar. Então agora essa luz intensa está marcada. Vamos definir a intensidade para 50 em vez de um. E nós vamos mudar a cor. Então vamos ver como esse lugar, vamos minimizar isso e eu vou deletar um desses. Ok? E, em seguida, o Plano de Nível. Lembre-se que isso é o que fizemos antes nas lições anteriores, atrasamos com três segundos. Nós geramos um ator responder ao poste de luz e ao meio do mapa. E depois atrasámo-lo e destruímo-lo. Deixe-me realmente remover isso destruído agora para que possamos vê-lo. E como substituir este aqui. E o outro foi desovado, desovado no meio. E deixe-me ir lá e reduzir a fonte de luz porque queremos ver as luzes. Vou escrever 0 aqui. E outra coisa que é irritante, nossa exposição está sendo afetada. Então vamos para criar efeitos visuais, fazer um volume pós-processo. E aqui sob exposição. E agora temos esse volume pós-processo aqui. E subexposição. Pegue o brilho mínimo e o brilho máximo e coloque-os em um. E lembre-se também, isso não faz nada se você não ir para o fundo e fazer a extensão infinita, por isso afeta todo o mapa. Certo, então agora a exposição não está sendo ajustada quando nos movemos. Vamos salvar tudo e clicar em Reproduzir. Agora você pode ver que estes parecem iguais. Vamos voltar. Se clicarmos neste e subirmos e clicarmos na luz intensa, agora ela mudará de cor e terá luz intensa. Vamos clicar em Reproduzir novamente. Posso ver aqui que tem luzes intensas. Ele precisa ser mais intenso porque nós realmente não podemos vê-lo, mas você pode ver que a cor é vermelha enquanto o outro não é vermelho. E isso ocorre porque aquele que gerou não tem a vontade de voltar, não tem a luz intensa marcada porque, por padrão, não está marcada. Então, por padrão, é falso. Então esses são os que respondem é como a intensidade de um e a cor é padrão. Enquanto o outro. Temos marcado tem a cor vermelha e tem a luz intensa. Então é assim que você gera variáveis variáveis ou expostas para gerar aqui no painel Detalhes. E muito útil novamente para o artista que realmente não conhece nenhum Blueprint. E você quer colocar para fora as variáveis para eles aqui. E a última coisa que eu só quero mostrar a vocês aqui, você pode ver que está sob padrão atualmente. Você pode alterar isso indo dentro da variável. E isso é sobre a categoria é padrão. Você pode mudar para outra coisa. Por exemplo, eu posso fazer poste de luz aqui. E a mesma coisa com a descrição, você pode chamá-lo de
poste de luz, e eles estarão sob a mesma seção aqui. Isso também é bom para organizar seu código. E se você compilar, você também pode ver que agora eles estão sob o título do poste de luz. Tudo bem, vamos passar para a próxima lição.
52. Eventos de sobreposição: Certo, então vamos falar sobre eventos de sobreposição e o que podemos usar com eventos de sobreposição. Você pode imaginar que seu personagem está correndo para um, um item que você pode saquear e levar em sua mochila. Este item será destruído e saqueado. E para isso acontecer, você tem que ter algum tipo de evento de sobreposição e detectar que seu jogador aludiu a moeda ou qualquer item que você tem. Ok, então vamos fazer isso com este poste de luz que temos, e vamos clicar duas vezes nele. E sobre isso nos componentes podemos adicionar algo chamado de dólares de gatilho. Então clique aqui e vamos descer. E vocês podem ver aqui que temos Colisão de Caixa, colisão de
cápsula ou lesão esférica. Então, com isso podemos fazer algum tipo de sobreposição de solos de eventos. Por enquanto, vamos usar esta colisão de caixa. Isto vai ser perfeito para nós, está bem? E para isso, geralmente eu chamo, eu chamo de dólares de gatilho, mas realmente não importa o que você chama. Também pode chamá-lo de uma caixa de colisão ou colisão de bugs. E vamos apagar isso por enquanto. Ok, vamos compilar e salvar. E vamos colocar o nosso poste de luz aqui no meio. Vamos acender a luz. Recusei na última lição. Então deixe-me colocar em três novamente, exatamente como o que tínhamos antes. E agora vamos para o visor. Clique nos bugs de gatilho que fizemos. E agora você pode reescaloná-lo aqui ou podemos reescaloná-lo aqui na extensão dos bugs. Ok, então, por exemplo, eu posso controlar Z e você pode ver o que acontece aqui na extensão da caixa. Você também pode redimensioná-lo e realmente não importa. Mas quando você faz o jogo, é claro que tem que ser específico. Como se tivesse que ser preciso. Mas, por enquanto, isso é bom. Digamos que isso é muito preciso e Compilar e Salvar. E agora temos uma caixa de colisão e podemos fazer algumas coisas com ela. Bem, vamos ao gráfico de eventos. E aqui, em vez de fazer a jogada inicial, queremos o, os eventos de colisão ou clicar sobre isso. Ou, na verdade, você não precisa clicar nele, mas você pode encontrar os eventos mais rapidamente. Você pode ver aqui no evento para um bug gatilho e colisão. E você pode fazer o componente add on, começar a sobreposição. Ou a outra coisa que você pode fazer, clicando na caixa Trigger, descendo para baixo, você pode encontrar todos esses eventos diferentes. Se eu fizer isso um pouco maior, você pode ver aqui algo chamado no componente, hit no componente começar sobreposição. Isto é o que vamos usar, e componente e sobreposição e assim por diante. Então, em vez de entrar aqui fazendo um novo evento, isso é muito mais rápido. E basta clicar na caixa de gatilho ou na caixa de colisão que você fez. Vá até o fundo e acerte o início de um laboratório. Ok. E antes de fazermos qualquer outra coisa com a sobreposição aqui, vamos lá e criar um cubo que pode se mover e, em seguida, bater nesta caixa de colisão. E quando ele atinge esses bugs de colisão, podemos fazer este código que disparará quando algo atingiu a caixa de colisão. Podemos tirar isso daqui. Este é o volume pós-processo. Não se preocupe com isso. Este é o componente que temos e nós também podemos ver a caixa de gatilho em torno dele. Então vamos em frente e criar novos bugs. Então vá em frente e clique em Criar formas, um cubo. Vamos movê-lo para cá. E então o que queremos fazer é exatamente como antes queremos
definir a localização da caixa toda vez que pressionamos R. Então vamos para o Plano de Nível. E dentro daqui, vamos usar o teclado para mover nosso “você”. E lembre-se que temos que definir este cubo para móvel para que ele funcione ou então ele não vai se mover no jogo. Vamos voltar ao Plano de Nível. E toda vez que
pressionamos R, queremos mover o cubo por 20 no eixo x. E a maneira como você sabe em que eixo você quer movê-lo como porque nós queremos mover
para este lado e bater esta lâmpada, poste de luz. E este é o ponto de pivô vermelho aqui. E o vermelho significa o eixo x. Você pode ver aqui o x é lido o porquê é verde e o z é azul. Então nós queremos subtrair ou ir no menos x. Pode ver aqui, o eixo x está indo para o menos k. Então esta é a direção que queremos mover. Foi aberta a Blue Frontier Level Blueprints. Clique no cubo, clique com o botão direito do mouse aqui e faça uma referência a este cubo. E você quer chegar ao local do ator. Queremos a localização atual da caixa. E com esta localização, vamos quebrar o vetor. Só queremos afetar o eixo X. Então, com isso, queremos subtrair 180 cada vez que apertamos a tecla R. E então vamos fazer o vetor novamente. Opa, faça um vetor. E vamos conectar o y e z. Então agora temos o vetor novamente. E vamos fazer ator set, definir a localização do ator para este cubo. Ok, então agora podemos definir a localização real e podemos conectar este novo valor vetorial login, conectar as arcas aqui. Ok? Então isso é o que vai acontecer quando pressionarmos nosso, cada vez que eu pressionar R, nós vamos obter a localização atual do cubo. Vamos subtrair 20 no eixo x, então ele se move por 20. E este é o novo local que vamos definir para ele. Ok, então aqui uma coisa legal. Você pode fazer isso dessa maneira para o cubo nos alvos ou você pode conectar a mesma coisa aqui. E você pode criar um nó que depende de você. O que você acha que é mais limpo. Eu costumo usar o mesmo. Se ele parece limpo, se não, se parece confuso, eu vou apenas fazer o nosso, apenas fazer uma nova referência aqui e conectado em vez disso, isso é exatamente o mesmo. Certo, vamos usar assim. Então vamos compilar clique em Reproduzir e ver o que acontece se clicarmos em nosso trabalho. Toda vez que eu clicar, ele vai se mover. Ok? Então agora precisamos fazer com que funcione. Então, quando atingir esta colisão, quando esta caixa bater nesta caixa de colisão vai fazer alguma coisa. E lembre-se, temos que fazer eventos de sobreposição. Então clique nesta caixa e lembre-se que precisamos tomar dentro da colisão, gerar eventos de sobreposição senão ele não vai gerar nada. Então, se isso atingir isso sem a colisão de um evento ao vivo atingido aqui, nada vai acontecer. Lembre-se, ticket, torne-o verdade, gere eventos ao vivo. Vamos movê-lo para trás. Vamos salvar tudo. E vamos voltar para o poste de luz aqui. Então simplesmente o que queremos fazer quando começarmos a sobrepor, vamos imprimir uma corda e ver a autodestruição. Então ele vai se destruir. E vamos atrasar por dois segundos. E vamos destruir o ator. Certo, então vamos destruir o ator. E que ator queremos destruir? Você pode realmente deixar que seja assim, porque eu, o alvo é eu mesmo. E o que significa “eu “? Self é apenas este ator em que estamos atualmente. E vocês podem ver aqui que estamos dentro da luz BP, poste de luz. E isto é o que queremos destruir. Então você não precisa de um alvo aqui porque é eu mesmo. Este alvo é o poste de luz que estamos destruindo? Isto é tudo fixe. E vamos verificar o escopo. Então vamos compilar, salvar e clicar em Reproduzir. E vamos clicar no nosso movimento dentro desta caixa. E quando você entrar na caixa de colisão vai dizer auto-destruição. E depois de dois segundos ele vai se destruir. Então é assim que você faz eventos de sobreposição. E isso é muito legal para quando você está carregando itens, você tem que você tem que destruir o item depois de tê-lo carregado. Então ele não está aparecendo mais no nível e assim por diante. Vamos para a próxima lição e eu vou te mostrar um nó chamado ator tem tag.
53. O ator: Certo, então vamos falar sobre o ator ter marcado o nó. Vamos voltar para o poste de luz. E aqui nós podemos realmente escolher que tipo de ator vai se sobrepor com nosso poste de luz. Imagine que você tem inimigos em seu nível. Digamos que você tenha esses inimigos diferentes em seu nível. E esses inimigos também andam por aí. E às vezes eles acertam o item que você quer saquear. Por exemplo, é uma arma no chão ou uma moeda ou o que quer que seja. E quando esses inimigos tinham a moeda, eles estão realmente sobrepostos com esta caixa de gatilho e isso irá desencadear este evento. Mas isso não é o que queremos fazer. Só queremos que o jogador acerte esta caixa de gatilho. Não queremos, não queremos que a moeda desapareça quando o inimigo acertar a moeda. Ok? Então é aqui que podemos usar ator tem tag. Então, no outro ator, este é o ator que, que está sobrepondo o componente aqui. Este é o jogador. Aqui podemos escrever ator tem tag. E você pode ver aqui uma função chamada ator tem marcado. E podemos escrever uma etiqueta aqui, por exemplo, podemos chamá-la de jogador. Ok? E esta etiqueta é realmente definida dentro desses atores. Então, nesta caixa, pode ir para os detalhes da pesquisa. Você pode encontrá-lo aqui em baixo. Mas em vez de encontrar X, você também pode apenas escrever tag. E vocês podem ver aqui que temos algo chamado “tag de ator”. E você pode clicar em mais e você pode realmente adicionar uma tag a este ator. Então, por exemplo, você pode chamá-lo de jogador. Então agora esse ator tem o gravador. E se há outros,
significa andar por aí e eles não têm essa etiqueta. Isto não vai ser disparado. Porque agora vamos dizer, se o ator tem o tag player, se isso for verdade, então vá em frente e se auto-destrua. Mas vamos compilar e clicar em Salvar. E vamos pressionar a nossa caminhada para isto. Vai dizer auto-destruição e vai resolver a palha. No entanto, se a tag não era jogador, vamos chamá-la de inimigo, por exemplo. Em seguida, clique em Reproduzir. Eu vou clicar são. E quando bater, não
vai fazer nada porque a etiqueta não é jogador. Agora isso é muito legal. Você pode realmente controlar o que dispara esta caixa ou aciona este evento. Então, se o, se o ator tiver outra tag, se não for Claire, por exemplo, e você escolher o que quiser chamar a tag. E geralmente isso é usado para jogadores. Quando o jogador atinge este item, ele vai fazer este tipo de código. Se o inimigo atingi-lo, o inimigo que não tem o jogador tag, nada vai acontecer. Portanto, isso é muito útil para usar em casos como este.
54. Obtenha todos os atores: Certo, antes de terminarmos essa seção, vamos falar sobre pegar todos os atores da classe. Então vamos passar para o plano de nível e vamos fazer uma jogada inicial. E aqui podemos arrastar para fora e fazer recebe todos os atores. E vocês podem ver aqui que temos funções diferentes. Temos que pegar todos os atores da classe. Temos um com etiqueta, temos bola. Obter todos os atores com interface, obter todos os atores com tag e tag. Lembre-se, por exemplo, temos a tag chamada jogador. E ele vai colocar todos os atores dentro deste nível com a tag do jogador. Então isso é muito legal e ele vai colocá-lo em um array. Lembre-se quando temos este quadrado, isso significa que este é um array. Então agora temos todos esses atores que detectam jogador, digamos, eu acho que este ainda tem, Vamos tentar camada aqui. E se tivéssemos vários e todos eles têm detector player, ele vai colocar todas essas três caixas neste array. E novamente, lembre-se que podemos apenas acessar coisas apenas escrevendo aqui, nós temos que usar as funções de matriz porque este é um array agora. E você pode encontrar as funções de matriz sob os utilitários e matriz. E você pode adicionar a esta matriz, você também pode encontrar o item, você pode obter o item e você pode sentir o comprimento desta matriz e assim por diante. Certo, então para isso, vamos pegar todos os atores da classe como normalmente. E vamos fazer o poste de luz. Então, escolher o poste de luz, Às vezes minha carta de olho não está funcionando e isso está ficando irritante. Ok, então agora nós pegamos o
poste de luz e ele vai colocar todos os postes de luz no nível. Então, vamos colocar quatro deles, por exemplo. Assim como este. E vamos apagar estes dois por enquanto, quatro deles. E no Plano de Nível, Vamos fazer gets. Então agora vamos pegar um dos postes de luz. E o que estamos recebendo é o número 0. Então, o primeiro. E com isso, agora nós podemos realmente, agora que temos declara o poste de luz, nós podemos realmente acessar os componentes dentro deste projeto. Porque agora estamos dentro deste valor de retorno é o poste de luz. E você pode realmente acessar, por exemplo, a luz pontual. Então, se formos até aqui e escrevermos luzes pontuais, e as variáveis estão sempre na parte inferior. Então, se formos para o fundo e podemos fazer e obter luz pontual. Porque agora este é realmente o poste de luz que temos por aqui. E podemos sempre fazer definir cor
ligeira e fazer isso e mudar a cor para, por exemplo, vermelho. E você sempre pode fazer, torná-lo muito irritante. Para que possamos ver que é assim. E lembre-se de conectá-lo à função aqui. Então agora temos todos os atores da classe. Estamos pegando o poste de luz da matriz. E agora estamos acessando a luz do ponto. E com isso, estamos definindo a cor para vermelho, Compilar e Salvar e tocar. E você pode ver aqui no nível, nós temos a primeira luz e nós mudamos para uma cor vermelha, enquanto todos os outros têm o padrão, a cor padrão. Mas também podemos fazer por diversão para mudar a cor aleatoriamente entre essas quatro luzes. Podemos, por exemplo, ir aqui. E em vez de apenas chamar a luz número 0, podemos fazer aleatoriamente. Então escreva aleatoriamente. E você pode fazer inteiro aleatório. Então, o máximo, você tem que especificar o que a quantidade máxima de luzes existem. E nós podemos realmente arrastar para fora desta matriz e fazer último índice. Então este é o último índice nesta matriz. Então, se colocarmos mais luzes aqui, ele vai notar, ele vai saber que o último índice será este número. Então não temos que entrar aqui e fazer quatro luzes. E se adicionarmos mais cinco luzes, temos que passar por cima e dizer nove luzes e assim por diante. Isso irá calcular automaticamente porque isso está sempre recebendo o último índice desta quantidade de atores que não temos nivelado. Tão conectada. Agora que temos, vamos realmente torná-lo um pouco melhor para olhar para isso. Estamos recebendo o último índice. Estamos recebendo um número inteiro aleatório do último índice e estamos colocando-o no get. Então agora estamos recebendo uma luz aleatória. Estamos recebendo uma luz pontual aleatória a partir disso e estamos definindo a cor. Então, se acertarmos no Play, eu vou até aqui. Se acertarmos no jogo. Agora, esta cor, deixe-me ver qual se eu posso vê-lo, esta cor aqui é lida por condado. Aperte o play novamente. Agora esta cor é R. Este slide está certo, então ele vai mudar de cor de uma luz aleatória. Agora este é vermelho. E agora este está certo. Mas enviando uma luz aleatória para a cor vermelha. Então é assim que você pode usar para que todos os atores tenham classe, ele coloca todos os atores dentro do nível ósseo. E você pode especificar que tipo de precisão é. Poderia ter sido. Tudo o resto. Não precisa ser este poste de luz. Imagine se tivéssemos mais aulas, poderíamos ter chamado todas essas outras classes.
55. O que é comunicação de is o que é o is: Bem-vindo a esta seção sobre o estilo de comunicação do Blueprint. O que a comunicação Blueprint é quando dois blueprints diferentes se comunicam entre si. E o que isso significa, por exemplo, se criarmos outro blueprint aqui, outra classe Blueprint, podemos realmente chamar eventos desta outra classe Blueprint. E, em seguida, um novo que criamos. Nós nos comunicamos entre essas duas plantas diferentes. E este é um conceito muito importante porque imagine que você tem diferentes classes de plantas. Você tem uma loja de moedas, você tem uma loja de sal, e você tem seu personagem principal, e você precisa acessar informações diferentes entre esses diferentes projetos. E então você tem que se comunicar entre essas plantas. Por exemplo, nesta classe blueprint aqui, você tem que usar um evento que é mais na outra classe Blueprint. E então você tem que usar a comunicação. Iniciantes geralmente pensam que este é o assunto mais difícil de todos eles. Primeiro, aprender plantas e tentarei explicar o mais claro e melhor possível. E também, se você não entender muito bem, tente assistir o vídeo novamente. E também tentaremos criar nosso jogo após a seção. E ao criar nosso jogo, também
usaremos a comunicação Blueprint, mas vamos dar um passo de cada vez. E na próxima lição, vamos aprender sobre elenco.
56. Escolhendo o elenco: Olá e bem-vindo à primeira lição sobre comunicação Blueprint. E neste vamos falar sobre elenco. Então agora estamos tentando nos comunicar entre dois projetos diferentes. Então, em primeiro lugar, vamos criar duas classes de blueprint diferentes para que possamos nos comunicar. E para este primeiro, vamos criar um ator de plantas. E vamos chamá-lo de barril BP e clicar duas vezes nele. Então este será um simples Beryl aqui nos componentes. Vamos adicionar um cilindro e movê-lo acima do solo para que não fique abaixo do solo e podemos escalá-lo ligeiramente. Então parece um barril. Ok, então isso é bom por enquanto. Nós realmente não vamos projetar muito. Quero concentrar-me na programação, por isso isto está bem, está bem? E a próxima coisa que queremos fazer é outra classe Blueprint. E vamos fazer um modo de jogo. Então lembre-se novamente, modo é onde as regras do jogo são definidas. Vou clicar no modo de jogo e vamos chamá-lo de g, m. Isto é o que eu costumo chamar de modos de jogo, GM e desde o início. E eu costumo chamá-los de modo de jogo. Por exemplo, Capture a Bandeira se ela foi capturada em um voo. Mas aqui nós realmente não temos um modo de jogo ou nós realmente não temos um jogo. Então vou chamá-lo de “Demode”. Vamos salvar tudo. E dentro deste modo de jogo, não
vamos adicionar nada aqui. Vamos entrar no gráfico de eventos. E dentro deste modo de jogo. Vamos fazer, vamos excluir esses e vamos fazer um evento personalizado. Então, queremos desovar este barril. Então vamos torná-lo um evento personalizado chamado barril de desova. E nós simplesmente queremos gerar ator de da classe, o que já fizemos em uma lição anterior. E queremos procurar o barril BP. Então agora vamos desovar este barril, e vamos criá-lo no meio do mapa. Então você pode dizer, você pode promover isso para uma variável ou você pode ir em frente e arrastar e fazer a transformação direita. E podemos fazê-los transformar-se por enquanto. E eu só vou escrever 15 no eixo z, para que não seja abaixo do solo. E x e y é 0, então está no meio do mapa. Ok, então isso é muito simples. Vamos apenas desovar o barril. Esta é a lógica para isso. E lembre-se que temos que chamar este evento em outro lugar. Não vai funcionar. Porque quando clicamos em Jogar agora, nada realmente acontece. E isso é porque nunca chamámos este barril de desova. Ok. E agora isso está no modo de jogo. Vamos para o Plano de Nível. E dentro daqui, vamos fazer uma peça inicial. E o que nós queremos fazer, nós realmente só queremos acessar este modo de jogo para que possamos gerar ou então nós podemos fazer isso são chamados este evento e gerar nosso barril para dentro dele. Comece a jogar, digamos, vamos fazer imprimir texto ou imprimir string e dizer gerando Viral agora, menos que atrasá-lo com três segundos. Agora, queremos chamar este evento para gerar este barril. E como você acessar este evento daqui e ali, e os planos de nível. E a maneira como você faz isso é com o elenco. Então é isso que estamos tentando fazer e como estamos tentando comunicar com essa classe blueprint,
a classe Game Mode que criamos. Então, para fazer isso, você tem que, você tem que ver qual é a classe geral disso. Isto é aqui na classe dos pais e no canto superior direito. Esta é a base do Modo Jogo. Então esta é a classe base. E aqui podemos escrever fica modo de jogo. Então agora eu tenho essa função e agora estamos recebendo o modo geral de jogo. Este não é o modo de jogo que fizemos. Não é este modo de jogo. Este modo de jogo que temos aqui é apenas o modo de jogo geral. Temos que lançar para este Modo de Jogo Personalizado que fizemos. Porque neste momento este não é o Modo de Jogo Personalizado. Então o que temos que fazer é dizer elenco também. E você pode ver que temos este modo de jogo GM, e este é o nosso modo de jogo. Agora lembre-se que temos que ter uma referência de objeto. Nós não podemos, nós não podemos simplesmente dizer excluir isso e dizer elenco para o modo de jogo GM. E aqui está, e Compilar e salvar. E agora ele vai dizer erro. Não temos um objeto aqui. Qual é o objeto? E o objeto é a classe pai que ele está se referindo. Então, neste caso, esta é uma classe de modo de jogo. E temos que dizer obter o Modo de Jogo. E então teremos que dizer que modo de jogo você quer obter? Queremos obter o nosso Modo de Jogo Personalizado, que é chamado de modo de jogo GM. Então vamos compilar e salvar. E agora não está mais dizendo um erro. E agora temos o Modo de Jogo e causamos o Modo de Jogo Personalizado que fizemos. Aqui em baixo nós podemos realmente acessar qualquer coisa que está dentro deste modo de jogo que fizemos. Agora, se tivéssemos variáveis diferentes, poderíamos acessá-las. Nesse caso, queremos acessar esse evento personalizado. Então este é chamado de barril de desova. Então aqui como modo de jogo GM, queremos acessar estes formam um barril. E agora vamos chamar esse barril de desova e ele vai desovar. Ok. Mas agora não é, ele não vai aparecer porque agora você pode ver aqui se eu clicar em Jogar e eu olhar para o mapa e ele não vai aparecer. E isso ocorre porque o mapa que estamos dentro de está usando o,
o modo de jogo normal. Então temos que ir para as configurações do Mundo aqui à direita. E dentro desta configuração de parede, temos algo chamado de substituição do Modo de Jogo. E isso é o que queremos mudar porque nós realmente queremos usar o nosso modo de jogo GM. Nós não queremos usar o, o geral, que é na verdade este que temos. E queremos usar o nosso personalizado. E isso também é o que vamos fazer quando criarmos nosso jogo. Temos que mudar o modo de jogo. Então, mudando a substituição gama, temos que mudá-la para o nosso próprio modo de jogo. E é isso. Você pode simplesmente clicar em Reproduzir. E você pode ver aqui que diz barril de desova agora e depois de três segundos, então dois segundos, então o que nós adicionamos, ele vai gerar o barril. Então isso é muito legal. Nós realmente não usamos um, nós não usamos um ator de origem da classe aqui. Acabamos de nos referir ao Modo de Jogo. E dentro deste modo de jogo, temos este evento personalizado, que tem a lógica para gerar o barril. Então é assim que se usa o elenco. E também imagine se clicarmos aqui com o botão direito do mouse, fizemos uma classe blueprint e nós realmente fizemos um personagem, por exemplo. A maneira, por exemplo, se você teve um eventos personalizados dentro daqui e você deseja acessá-los, Digamos que você deseja acessá-los aqui. Você tem que dizer em vez de dizer bom modo de jogo, porque agora este não é o modo de jogo mais. A classe pai é caractere. Então o que você queria dizer é que ganha personagem de jogador. E a partir disso você pode lançar também. E agora este é um chamado de novos projetos. Então este é o novo projeto e é assim que seu custo para diferentes blueprints. E digamos que eu fiz uma variável dentro daqui chamada Olá e Compilar e Salvar. Então, agora dentro disso, quando eu fiz referência a este novo projeto, eu posso realmente escrever olá e eu posso ver este booleano, e é assim que você usa ou como você faz referência a diferentes blueprints. Então é assim que você se comunica entre blueprints e acessa seus eventos personalizados e acessa suas variáveis. Espero que isso não tenha sido muito difícil e se você está confuso sobre um pouco disso,
por favor, escreva para mim na discussão, diretamente para mim em particular ou escreva na discórdia da comunidade, estou sempre disposto a ajudá-lo e se você Preciso de uma explicação melhor para algo, por favor, certo. que eu possa melhorar
os vídeos que eu faço. E com isso, vamos passar para o próximo método de comunicação. E este é chamado de Interfaces de Blueprint. E este é, na verdade, o mais difícil para iniciantes. E vamos dar um passo de cada vez. Vamos passar por cima e aprender sobre as interfaces de blueprint.
57. Interface com Blueprint: Ok, então agora vamos falar sobre as interfaces de blueprint. E isso é o que eu uso principalmente quando programei meus jogos. E não há, é, é que o casting quando você custa para outros projetos, isso é realmente criar uma referência difícil. E quando você cria muitas referências ocultas, por exemplo, se você cortar esse blueprint para este blueprint, que novamente custa para os outros blueprints. E você continua lançando, fundindo e fundindo. No final, isso afetará o desempenho porque isso é difícil fazer referência e você reduzirá todos esses custos antes de fazer o que deseja fazer. A fim de fazer isso. Além disso, quando você usa Interfaces de Blueprint, é muito mais limpo em seu código. Portanto, não são apenas as referências de altura, mas seu código é muito limpo. Então eu recomendo que você aprenda isso desde o início antes de programar alguma coisa? Porque isso é muito importante para você aprender. E vamos em frente e ver o que são as interfaces de blueprint. Haverá, antes de criar um, criar uma interface de blueprint, Vamos em frente e criar uma classe de blueprint. Vamos fazer o barril que tínhamos antes, o que é chamado barril BP. E deixe-me ir em frente e criar este componente e cilindro. E eu vou criar o barril que tínhamos antes. Ok, então agora eu tenho este barril. E novamente, vamos passar para o plano de nível de planta. E vamos também abrir este barril. E o que eu quero fazer é aqui ele pode apenas dizer no início do jogo, ele pode imprimir uma corda e dizer, Eu tenho desovar. E isso dura dez segundos. E o que queremos fazer dentro do Plano de Nível aqui, nós realmente queremos gerar este barril,
ok, e então precisamos de alguma lógica de desova. Então vamos em frente e criar o modo de jogo novamente, clique com o botão direito do mouse classe Blueprint e criar um modo de jogo aqui. E vamos chamar uma demonstração da GM. Vamos entrar neste modo de jogo. E assim como antes, vamos criar um evento personalizado. E este vai ser chamado de barril de desova. E vamos em frente e fazer o ator de origem da classe que é o barril e pode se transformar. E aqui vamos escrever 15, então está acima do solo. Mas agora temos essa lógica de ligação para o barril. Agora precisamos chamar este evento para que funcione. Então vamos voltar para o Plano de Nível e queremos chamá-lo aqui. Então, no início do jogo, quando começamos a jogar o jogo, nós estamos ,
vamos, vamos atrasá-lo por dois segundos ou três segundos para que tenhamos a chance de vê-lo. E vamos chamar este evento. Então lembre-se antes quando tivemos que acessá-lo, escrevemos modo de jogo delta. Então nós escrevemos causado a imagem GM. Isto é o que fizemos antes. Isto é, este foi o elenco e aqui nós poderíamos dizer desovar viral. Mas agora não é isso que queremos. Estamos tentando não fazer referência difícil por enquanto. Eu realmente nunca usei casting a menos que eu tenho que gostar, há algumas situações que você não quer ir para o aborrecimento e fazer uma Interface Blueprint se você só vai custar uma vez, tudo bem, você não faz não é porque você não estão autorizados a usar elenco. Apenas tenha cuidado para não enviar spam em todos os lugares. Certo, então em vez de usar casting, queremos fazer uma Interface de Blueprint. Para criar uma Interface de Blueprint, eu realmente vou criar uma nova pasta dentro de blueprints, e eu costumo chamá-la de interfaces. E dentro daqui, posso clicar com o botão direito do mouse. E dentro de blueprints, há algo chamado Blueprint Interface. Ok? E isto é muito fixe. Temos, até agora, aprendemos sobre classes de blueprint, a biblioteca, biblioteca de funções e biblioteca de macro e enumeração. E agora estamos aprendendo sobre Interfaces de Blueprint. Então você quase tem tudo isso. Você só precisa da estrutura esquerda. Então vamos fazer a Interface Blueprint. E para interfaces são geralmente chamá-los int e, em seguida, dar-lhe um nome. E para este caso, eu quero chamá-lo de modo de jogo. E você vai ver por que eu chamo de modo de jogo, porque esta é a interface para o modo de jogo que realmente criamos aqui. Ok, então se você clicar duas vezes nesta Interface Blueprint, você vê aqui nós temos agora esta viewport aqui. Isso se parece com o gráfico de eventos, e temos muitas funções. Então aqui,
na Interface do Blueprint, você cria funções e essas funções que você usa em outros blueprints. Então isso é como um suporte de função. Ok? E isso é, a Interface de blueprint é específica para blueprints. Então eu vou ver como eu vou mostrar a você como você se liga a eles. Ok, então vamos tentar, em vez de fazer o casting, nós realmente queremos evitar casting e queremos fazer referência a este modo de jogo sem fazer casting. Então, como fazemos isso? Primeiro, dentro do modo de jogo, aqui, na interface do modo de jogo de interface, vamos fazer uma nova função chamada set Game Mode rref. E isso é como definir a referência do modo de jogo, ok, você pode chamá-lo do que quiser. Mas isso faz sentido para mim, disse Demode ref. Ok, Então esta função é especificada para definir a referência do Modo de Jogo. E aqui na saída, vamos adicionar uma variável. Ok? E este, você pode realmente escrever o modo de jogo. E você pode ver aqui eu posso encontrar meu modo de jogo GM. Esta é a classe Game Mode que fizemos aqui. Ok, então nós queremos uma referência a essa classe de modo de jogo. Então, certo, modo de jogo e encontrar o chamado modo de jogo GM. Este é o nosso modo de jogo. E isso deve ser uma referência de objeto. E vamos chamá-lo de modo de jogo. Ok, então esta é uma variável, isso é apenas como ler um booleano ou um inteiro. Mas aqui a variável é a nossa classe de modo de jogo. Ok, vamos compilar e salvar, e eu vou te mostrar como podemos acessar isso. Então dentro do modo de jogo,
a classe que fizemos aqui, temos que entrar aqui. E dentro do, você tem algo chamado Configurações de classe, e você tem algo chamado padrões de classe. Ok? Então, dentro das configurações de classe, você tem algo chamado interfaces. Você precisa adicionar a interface a um blueprint antes que ele possa funcionar. Então, agora, esta interface não está anexada ao modo de jogo
e, portanto, não mostrará nada. Temos que anexá-lo à planta. Queremos usá-la. E neste caso, queremos usá-lo dentro do modo de jogo. Então aqui nós clicamos no anúncio e procuramos a interface ou int. E é por isso que é tão bom escrever nomes antes do nome real. Então, clique no modo final do jogo. E agora nós adicionamos para lembrar de compilar para que ele funcione, compilar, salvar. E você pode ver aqui à esquerda algo aparece. Esta é a interface. Então, agora nas interfaces, todas as funções que você faz aqui aparecerão aqui. Ok? Então agora você pode clicar duas vezes neste modo de jogo ou uma disfunção que você fez. Você pode ver aqui esta é realmente a função que você fez aqui. Você não pode fazer nada aqui, você não pode adicionar coisas aqui. Esta é apenas a interface. Você só pode criar a função e pode usar a função dentro deste blueprint ao adicioná-la à configuração da classe. Então lembre-se, muitas pessoas cometem o erro de esquecer de adicionar os dois na interface aqui. Então lembre-se de editar. E depois disso você pode realmente acessar a função. E aqui podemos ver a referência ou o modo de jogo variável. E a maneira como fazemos referência a isso, nós podemos realmente apenas escrever “self”. Então vamos dizer o modo de jogo. O que é, o que é essa referência? Então o que é, o que é essa referência de modo de jogo? E isso é auto, porque eu, estamos dentro do jogo, gm Game Mode. Lembro-me desta variável. Esta variável é o modo de jogo GM. Então isso é realmente eu, isso é em si mesmo que ele está se referindo. E agora isso é muito legal. Então agora eu vou mostrar a vocês qual
é o resultado real dentro do Plano de Nível em que estávamos. Em vez de fazer o get Game Mode e, em seguida, casting, podemos realmente agora acessar esta função de interface aqui. Então, voltando para o Plano de Nível, podemos dizer definir o Modo de Jogo ref. E você pode ver aqui temos SET modo de jogo ref, e é muito importante que ele diz mensagem. E isso significa que esta é a interface. Se ele não diz mensagem, isso é errado. Certo, então lembre-se de ler que diz mensagem. E deve haver um ícone de letra aqui em cima. Então isso significa que isso é de uma interface. E se nós conectá-la, agora temos uma referência a este modo de jogo, porque este modo de jogo, temos referenciado a si mesmo. Então ele sabe que este modo de jogo aqui é realmente este modo de jogo. Discutir sobre eles Modo de Jogo que fizemos. Se você não ligasse nada aqui, não saberia, realmente não saberia o
quê, o que é variável. Então auto significa que este modo de jogo é realmente este modo de jogo em que estamos. E como este modo de jogo, podemos fazer a desova e o barril, ok, então podemos fazer o barril de ligação. Então é assim que você trabalha com Interfaces de Blueprint. Então, agora não custamos. E isso é muito legal e você pode ver que o código também se torna muito mais limpo. Se nós, se salvarmos tudo, eles têm tudo. Lembre-se de compilar. E vamos clicar em Reproduzir e ver o que acontece. Temos que entrar nas configurações do mundo e definir o modo de jogo GM, que é o nosso modo de jogo personalizado. E vamos tentar jogar de novo. E você pode ver aqui depois de três segundos
, seus títulos são barril, OK. Então agora nós realmente gerou um barril com, sem fazer o elenco. Então, esta mala volta e eu explico mais uma vez, rápido. Então o que fizemos foi criar esta Interface de Blueprint. Então esta é a nossa Interface de Blueprint aqui. E você tem que anexar interfaces de blueprint através das configurações de classe. Então eu poderia ter, eu poderia ter adicionado aqui se fizesse sentido, mas isso só foi criado para o modo de jogo, então só faz sentido adicioná-lo aqui ao modo de jogo. E quando adicionamos, podemos acessar as funções da interface. E dentro desta função que fizemos, realmente só queremos que ele faça referência a este modo de jogo. Então nós adicionamos uma variável, e a variável era este modo de jogo GM. Então dentro do modo de jogo GM, nós acessamos esta interface que fizemos e nós temos que especificar para ele o que é essa variável? Isso é auto, porque já estamos no modo de jogo GM. Então é assim que você pode se referir. E dentro do Level Blueprint, podemos então obter o modo de jogo. Este é o modo geral de jogo dos pais aqui em cima. E podemos chamar, em seguida, o set Game Mode ref. Então você pode realmente acessar agora essas funções de Interface do Blueprint. E então você pode chamar o barril de ligação porque nós já sabemos que este modo de jogo, nós o referenciamos como auto aqui. Então ele sabe que, que você quer dizer modo de jogo GM aqui. Agora deixe-me mostrar-lhe outra coisa legal antes de terminar o vídeo aqui no modo de jogo indie, em vez de fazer um evento personalizado barril de geração, eu vou mostrar-lhe como fazer
um, um evento através do interface. Aqui eu vou deletar esse cano de espinha, OK. E eu vou voltar para a interface, e eu vou adicionar uma função e chamá-la gerada insuportável. Ok, e o importante a saber aqui é se você criar uma saída, se você clicar duas vezes isso e disse Gamow dirigiu. Se você clicar em uma saída como um nó de retorno, esta será uma função, ok? Então esta será uma função e será azul. E você pode vê-lo aqui. No entanto, se você fizer uma função sem uma saída, por isso é, É apenas a entrada aqui. Será um evento e isso será amarelo. Então os eventos são amarelos, certo? E será um evento se você não tiver uma saída. No entanto, se você tiver uma saída ou nota de retorno, ele não será um evento em será função normal que você pode acessar. No entanto, se for um, se for um evento, isso significa que você só tem uma entrada aqui e você pode clicar duas vezes e acessá-lo porque este é um evento. Então nós temos um evento chamado barril de desova, e nós podemos realmente ir para o modo de jogo aqui e escrever barril de geração porque você não pode arrastar para fora aqui. Diz erro, não se pode arrastar para fora. Então você tem derivado spawn sobre o que você está procurando é este evento spawn barril porque você é, você precisa dos eventos, então eventos mambo. E você pode ver aqui que este Ícones significa que isso é de uma interface. Então agora você pode usar isso aqui e conectá-lo. Ok, então agora você tem um evento usando a Interface Blueprint. E, e a razão pela qual podemos chamá-lo é porque nós adicionamos às configurações de classe. Então ele sabe todas essas funções que adicionamos aqui. Então você pode usá-los aqui. E isso é muito mais limpo que você pode adicionar todas as funções aqui e depois usá-las. E a maneira como chamamos o Agora estamos recebendo um erro porque este não é mais o evento personalizado. Precisamos mudá-lo. Este é agora o Evento de Interface do Blueprint, e este é chamado de barril de geração. Então vamos escrever o barril de desova e o que precisamos escolher é lembrar, é esta mensagem. Então esta é a frente, a Interface Blueprint. Então, o barril de desova, vamos chamar este. O que vamos fazer é pegar o modo de jogo. Estamos recebendo a referência, que está se referindo a este modo de jogo GM que fizemos. E daqui estamos,
estamos chamando essa Interface de Blueprint, que é o evento que fizemos dentro da interface aqui. Então fizemos o sino da espinha. Ok, então isso é muito legal. Vamos clicar em Reproduzir e ver o que acontece. E depois de três segundos, ele deve gerar isso também, o que é legítimo também faz. Então isso torna o código muito mais limpo. E você vai ver também mais claramente quando fazemos nosso jogo, porque eu vou usar Blueprint Interfaces para que possamos praticar. E lembre-se também que você pode adicionar entradas a esses eventos. Então, por exemplo, digamos que você precisava
disso, essa transformação de geração dentro deste evento poderia realmente entrar aqui neste barril ponto. E você pode adicionar uma entrada e chamá-la de transformação de geração. Na verdade, faça isso um pouco maior para que você possa ver o que está lá dentro. Então eu posso chamá-lo de transformação de geração e eu posso torná-lo em uma variável de transformação e eu compilar. E se você voltar para o modo de jogo, você pode realmente ver agora que temos uma transformação e nós poderíamos, por exemplo, tê-lo ligado aqui. Mas agora isso não faz sentido porque nós, nós não estamos fazendo referência aqui. Então você pode ver aqui se eu compilar e salvar e voltar para o blueprint, o Level Blueprint. Você pode realmente fazer isso dessa maneira e você pode adicionar uma transformação aqui. E digamos que queríamos, por exemplo, obter, obter a palavra. O ator está de pé. Por exemplo, se você tivesse um personagem, eu iria obter a posição do personagem e eu iria conectá-lo. E quando eu ligar uma posição aqui como apenas uma variável promotora. E você pode ver, então esta variável aqui vai ir em frente e colocar esta entrada dentro deste, dentro deste evento ou desta função aqui. E ele vai passar por aqui, e ele vai colocar o, o que quer que você adicioná-lo nesta variável, ele será adicionado a este ator de geração. Tudo bem, então este foi o fim para as Interfaces de Blueprint, e vamos usá-lo muito mais quando criarmos nosso primeiro jogo. E antes de criarmos nosso jogo, vamos em frente e aprender sobre, sobre a última coisa, que são os despachantes de eventos.
58. Dispatcher para eventos: Olá e bem-vindos de volta a este último na comunicação do Blueprint. E este é sobre despachantes de eventos. Então este é um pouco diferente das Interfaces de Blueprint. Os despachadores de eventos se concentram mais em acionar vários eventos. E você pode disparar um evento, você pode encontrar vários eventos. E o legal é que você também pode se comunicar com o Level Blueprint aqui. E em vez de explicá-lo, Vamos em frente e fazer um exemplo com um Despachante de Eventos. Então, aqui nos planos, eu quero criar uma nova classe e esta aqui. E digamos que eu queira criar um ator e vamos criar o barril. Então, queremos desovar o barril em um determinado momento. Mas teremos este barril. Podemos adicionar um cilindro de componentes como fizemos antes. Certo, assim. Agora temos este barril e aqui também queremos criar um controlador de jogador. Então clique com o botão direito do mouse classe Blueprint e criar um controlador. E para controladores de plugue, eu costumo chamá-los de PC. E vamos chamá-lo de controlador de jogador. Ok, então dentro deste controle de jogador, a idéia que queremos fazer é quando você pressionar a tecla no teclado, você ganha moedas. E quando ele ganhar moedas suficientes, você vai gerar este barril no mapa. Ok, e nós queremos fazer isso através de um, em um Despachante de Eventos. Agora vamos para dentro do controle do jogador e não fazemos nada aqui, temos que ir para o gráfico de eventos. Eu quero excluir esses eventos e menos passos teclado E aqui. Então agora eu tenho este tipo e queremos ganhar moedas quando prosseguirmos. Então vamos fazer uma variável, chamá-lo de moedas. E este é um inteiro porque a contagem de moedas não tem casas decimais. Isso não faz sentido a menos que seu jogo tenha inteiro. Só queremos moedas comuns. E quando você pressiona a tecla E, queremos duas mais por uma moeda. Então, em uma chave precedente queremos mais, mais por uma moeda. E quando temos moedas suficientes, queremos gerar o barril e queremos fazer essa lógica dentro do Plano de Nível. Então vamos abrir o Plano de Nível. Lembre-se de estar dentro deste tutorial do mapa. Ok? E em seu plano de nível, vamos lá e dizer “começar a argila”. E o que queremos fazer, queremos chamar o despachante. Então, agora vamos criar o dispatcher e também voltar a este plano de nível. Então aqui, queremos criar um Despachante de Eventos. Certo, então dê crédito a este Plus para fazer um Despachante de Evento e podemos chamá-lo de gerador de barril. Ok, então este despachante de eventos nós podemos compilar. E à direita, você pode ver que temos algo chamado entradas e podemos adicionar um parâmetro. Então vamos em frente e fazer isso. Clique em novo parâmetro. E para aqui queremos adicionar essas moedas para que eu
possa arrastá-lo para fora e você pode ver como ele, como ele se parece. E se você arrastá-lo para fora, você pode ver que você pode chamá-lo de um combinado em bandidos e eventos e seno. Um seno. E isso é o que é. Você tem que ligar para este despachante. Isto é como, isto é apenas como chamar esta função ou fazê-lo com as interfaces de utilizador. Isto é o que se faz com os despachantes. Você chama isso, ok? E você se conectou como qualquer outra função. Certo, então agora vamos ligar para o despachante do evento. E deixe-me ir em frente e fazer isso corretamente com a variável aqui. Então, se você clicar no Despachante de eventos aqui, Vamos mudar a variável para inteiro porque queremos este valor de moeda. E você pode chamá-lo de moedas. Compilar e salvar. E vamos realmente excluir este e arrastá-lo para fora e colágeno. Então está correto. E vamos conectar esse resultado inteiro e tipo de moedas. Ok, então agora nós chamamos este Event Dispatcher, assim como quando você chama eventos, ok? Assim como quando você chama eventos normalmente. Então agora eu tenho este Event Dispatcher e vamos para
o tutorial ou o Level Blueprint. E aqui queremos acessar este Event Dispatcher. E lembre-se, se quisermos acessar qualquer coisa dentro desta classe de blueprint personalizada, temos que um custo para ela ou usar interfaces de blueprint. Então, para este, posso mostrar-lhe como fazer as duas coisas só para praticar. Se você quiser custar a ele, você pode dizer git player controller. Lembrem-se, a classe dos pais é o controlador do jogador. E esta é a lei geral de controle do jogador. Mas aqui você quer lançar para o seu próprio controlador personalizado, embora, certo, Classe 2. E você encontra este controlador. E a partir daqui, você pode chamar o Despachante de Eventos. E quando você quiser chamar para um dispatcher de eventos, você tem que vinculá-lo. É assim que se chama. Vincular ao Despachante de eventos. Então você está certo por dois. E então você escreve o nome do despachador de eventos. Neste caso, para nós, chamamos isso de fauna de barris, e você pode ver aqui diz Vincular Evento para desovador de barril. Vou explicar este e eu sou um pouco, Vamos ir em frente e ver como podemos fazer isso dentro de uma Interface Blueprint em vez de custar. Então você tem as duas opções só para praticar. E deixa-me apagar isto outra vez. E deixe-me ir lá e fazer uma Interface de Blueprint. Em primeiro lugar, temos de obter uma referência a este controlador de nível. Então, a maneira como fazemos isso é vamos passar por cima dos projetos, criando uma pasta. Tudo em interfaces. Dentro disso, vamos criar uma nova interface em vez de blueprints e Blueprint Interface. Vamos chamá-lo de controlador de laboratório int. E vamos clicar duas vezes. E dentro daqui, vamos fazer uma nova função chamada “Layup Controller F. e você pode chamá-lo do que quiser. E queremos uma referência,
referência a este controlador de jogador. Então deixe-me mostrar-lhe aqui no controlador do laboratório. Lembre-se que temos que adicionar interfaces aos glosses senão eles não funcionarão. Então, dentro das configurações de classe, você tem dois aqui e as interfaces, você tem que adicionar o controlador preto ENT que acabamos de fazer. Eu vou fazer isso. Você pode ver aqui nossa função de interface aparece. Lembrem-se,
isto é um evento, se tivermos apenas informações. Então agora isso é um evento. Nós não podemos realmente clicar duas vezes nele como uma função. Então queremos fazer referência ao controlador. Então vamos adicionar uma saída. E dentro das saídas, Vamos fazer o controlador do jogador que temos aqui. Esta é a referência que queremos controlador jogador TCE. E esta é uma referência de objeto. Ok? E aqui podemos chamá-lo de controlador player, compilar e salvar. E você não pode fazer nada aqui. Então está tudo acabado. Vamos voltar ao controle do jogador. E agora você pode ver que ficou azul porque agora nós temos uma saída e não é mais um evento. Podemos clicar duas vezes nele e agora podemos apenas escrever auto. Então estamos fazendo referência, é perguntar qual controlador de jogador é essa referência? Este é o eu, porque estamos dentro deste. Ok? Então a referência é esta. É assim que se faz. E agora o que podemos fazer de fato Plano Nível. Podemos realmente aqui, em vez de custar, Vamos copiar este controlador get pled. E agora podemos dizer que a função que acabamos de fazer assim definir jogador controlador ref. E lembre-se, já que é
uma função de interface, tem que dizer mensagem, certo? E também é tão mostra através deste ícone de letra que é uma função de interface. Assim como antes, o que podemos fazer é ligar ao gerador de barril. Então é assim que você chama os despachadores de eventos. Você se liga a eles. Então vamos excluir esse custo. Vamos usar o logit de controle da placa ou a função de interface que acabamos de fazer. E vamos conectar tudo. Ok, então quando você cria, quando seus dispatchers de eventos de crédito, você os chama exatamente como eventos comuns que você acabou de aprender são como funções. É só chamá-los assim normalmente. E quando você os chama, quando você os usa em outros lugares, você tem que se ligar a eles. E o que você precisa fazer é fazer referência ao local onde você fez o Despachante de Eventos. Neste caso, estamos nos referindo ao controle
do jogador porque este é o lugar onde nós fizemos isso, ok, e você tem que ligar a ele. E agora temos um evento aqui. Então, aqui vamos criar um eventos personalizados e vamos chamá-lo de barril de geração. Ok, vamos compilar e salvar. E agora toda vez que subimos de nível, cada vez que pressiono E, estamos, ou cada vez que
prosseguirmos, vamos ganhar moedas. E toda vez que ganharmos uma moeda, ele chamará esse gerador paralelo. E quando você chamar o Despachante de Eventos, ele acionará todos os eventos aos quais você se limitou. Então, quando eu pressionar E e eu ganhar uma moeda, ele realmente vai disparar este evento. E você pode fazer isso em muitos, muitos projetos. Você pode imaginar que você tem 10 lugares onde você se liga a esta geradora de sino, a este Despachante de Eventos. E toda vez que você chamar
isso, vai disparar em todos os lugares que você se limitou. Ok? Então aqui o que queremos fazer, agora temos essa entrada chamada moedas. E este Moedas está vindo daqui. Então, toda vez que você pressionar E, vai nos dar mais uma moeda. E vai colocá-lo dentro deste Event Dispatcher. E agora podemos ver que temos esta moeda que adicionamos aqui. E o que queremos fazer é apenas perguntar, este número
é maior ou igual a 10? Então, se tivermos 10 moedas, isso é verdade? Se for, podemos ir em frente e fazer o ator de origem da aula. Podemos gerar o barril e o lugar que queremos gerá-lo, vamos promover isso a uma variável e chamá-lo de transformada em barril. E vamos compilar e salvar a menos que um no meio do mapa e apenas dar-lhe 15 para que não fique abaixo do solo. E podemos dizer que tentou ajustar a localização, mas sempre gerar. E vamos salvar. E antes que pudéssemos clicar em jogar, lembre-se que este é um controlador de jogador
personalizado e nós temos que atribuir algo aqui. Mas lembre-se, nós realmente não temos um modo de jogo. E para isso, vamos apenas ir em frente e criar um modo de jogo. Então, dentro daqui, você um plano classe de crédito modo de jogo, e vamos chamá-lo de modo de jogo g m. Certo, agora temos um modo de jogo. Vamos salvar tudo. E dentro das configurações dos, Vamos alterar o modo de jogo padrão para o modo de jogo. E você pode então atribuir um controle de jogador. E aqui queremos atribuir o controlador PC player. E agora estamos usando nosso Modo de Jogo Personalizado, e ele também está usando o controle personalizado. Vamos salvar tudo. E vamos ver o que acontece. Clique em Reproduzir. E quando você pressiona a tecla
E, e na verdade vamos imprimir para a tela para que você possa vê-lo melhor. Caso contrário, você quer realmente visualizá-lo. E quando você adiciona moedas, Eu também quero, Vamos, vamos imprimir uma corda antes de fazer isso. Então imprima uma string. E este você pode tentar usar notas reescritas. E você pode fazer isso clicando duas vezes nesta fronteira. E aqui queremos dizer, nós só queremos imprimir a quantidade de moedas que você tem atualmente. E, na verdade, vamos fazer assim. Isso é bom. Simplesmente assim. Ok, agora ele vai imprimi-los apenas para que possamos vê-lo. E se clicarmos em Play e pressionarmos a tecla, ele diz um. E é um guisado. E quando chegar ao número 10, ele deve gerar o barril D. E você pode ver aqui, agora nós geramos este robô. Então o que acontece é, vamos fazer, vamos passar por isso rapidamente. O que acontece é que criamos este Event Dispatcher. E para os despachadores de eventos, você os chama exatamente como
quando imprime, quando tira uma função e deseja usar essa função ou quando chama os eventos personalizados que você faz. Ok, então agora nós chamamos este Event Dispatcher, assim como você chama eventos. Normalmente. Para este despachador de eventos, adicionamos um parâmetro. E isso se torna porque queremos ser afetados por essas moedas. Isto é o que está afetando. E essas moedas aqui, para chamar este Event Dispatcher, você tem que se ligar a ele e você apenas escrever ligar para e, em seguida, o nome do Despachante que você fez. E lembre-se que você tinha que se referir ao lugar que você fez o despachante do evento. Então, neste caso, estava no controle do jogador. E aqui no controle do jogador podemos então tirar e ligar para o despachante do evento. E toda vez que você chamar o Despachante de Eventos, cada vez que você pressionar E e
chamá-lo, ele vai disparar em todos os lugares que você se limitou. Então, neste caso, nós só nos ligamos a um evento, porém é que ele está ligado a este evento. Este evento vai disparar cada vez que pressionarmos E. Mas ele só vai fazer algo porque nós tínhamos adicionado esta condição de que se nós temos 10 ou mais moedas, então vá em frente e desovar o barril. E só para mostrar que está disparando o tempo todo, podemos dizer fogo aqui embaixo. Então, se ainda não temos dez moedas, vai dizer fogo. E se clicarmos em brincar e eu clicar em E, apenas fogo, fogo, fogo, fogo. Então, ele vai disparar este evento o tempo todo, toda vez que você pressionar E Porque você chamou este Event Dispatcher e ele vai disparar em todos os lugares que você tem limitado. E isso é muito útil, especialmente se você ligá-lo em muitos lugares. Você pode disparar, você pode imaginar que você pode disparar muitos eventos ao mesmo tempo. E essa também é uma maneira legal de se comunicar com o Level Blueprint. É assim que você usa os despachadores de eventos. Por favor, avise-me se tiver alguma dúvida sobre isso. A comunicação do plano geralmente é um pouco mais difícil para iniciantes, mas se você tiver uma boa compreensão de como funciona, então tudo será muito mais fácil de entender. Então vamos passar por cima e na próxima seção e realmente desenvolver um jogo real. Até agora, acabamos de usar a corda de impressão e muitos vídeos. E embora seja legal exibir todas as coisas através de uma string de impressão, geralmente tende a ficar mais difícil quando você tenta desenvolver um jogo real porque está tudo bem. Eu imprimi uma string, mas como eu usá-lo realmente saiu em um programa novamente. E isto é o que vamos ver. Vamos programar de novo a partir do zero. E eu vou te mostrar o processo de como começar do zero. E então o jogo de lava que é realmente funcional e fazendo uma condição de vento e tudo isso. Mas vamos em frente na próxima seção e desenvolver nosso primeiro jogo.
59. Introdução: Olá e bem-vindo a esta seção. Então, esta seção vai se concentrar em criar seu primeiro jogo. E para este, estamos apenas criando um jogo muito simples como seu primeiro jogo para ver como usamos todas as coisas que aprendemos e juntá-las para fazer jogos. Então o que vamos fazer é apenas uma esfera simples que você pode controlar se o seu teclado e você vai perder rolagem e rolagem. E ele será exibido, exibido no canto superior esquerdo você pode ver quantos pergaminhos carregados. E quando terminar de carregar os pergaminhos, posso entrar no meu portal. E daqui vai mostrar que tipo de troféu você tem. Se você não carregou muitos troféus, você vai ganhar o troféu de bronze. Se você carregou no meio, você está recebendo a prata. E se você carregou todos os troféus ou todos os pergaminhos, você receberá o troféu de ouro. Então este é um jogo muito simples, mas você vai aprender algumas coisas e como, com todas as coisas juntas que aprendemos a partir daí, podemos passar para tópicos mais avançados. Então vamos em frente e começar o projeto do jogo.
60. Download o projeto: Ok, Olá e bem-vindos a este projeto de jogo. Então, antes de irmos em frente e fazer qualquer coisa,
por favor, vá em frente e baixe este projeto que eu enviei para o site. Então vá em frente e faça o download. Chama-se colecionador da morte. E o que você verá é uma pasta e dentro dela está todo o projeto. Aqui você pode ver como ele se parece e é isso que você estará baixando. E quando você extraí-lo, você pode abrir o cobrador de dívidas que seu projeto. E também se você, se você não quiser abri-lo por aqui, você pode abri-lo através do lançador Epic Games. Quando você inicia o Unreal Engine cinco, dentro do projeto, você pode navegar para este novo arquivo de projeto e ir em frente e abri-lo. Por favor, me avise se tiver algum problema para abrir. Espero que não. E quando você abre o projeto, você vê todas essas coisas. Então lembre-se quando você abrir um projeto, geralmente você está dentro de um nível vazio. Então você tem que clicar duas vezes em um dos mapas para entrar em um nível. Ok, então isso é algo para saber. E dentro deste projeto, há algo, há essas pastas aqui. Então temos uma pasta 3D, e dentro da pasta 3D temos todos esses ativos. Então esses ativos é o que é usado para criar esse nível. E também acabei de criar um nível rápido que podemos usar para o nosso jogo. Mas você pode ir em frente e criar um nível mais bonito se você quiser. Estes são ativos que você pode simplesmente clicar e arrastar e soltar aqui eu já, eu já adicionei os materiais e texturas e tudo isso para que você não tenha que pensar sobre isso. Você pode ir em frente e arrastar ativos e projetar seu próprio nível, se quiser. Estes são todos os ativos que é criado para o meu ofício de tabuleiro de jogo. E eu dirigi este jogo e recriei muitos ativos que criamos. Activos para, acho que cerca de 10 meses. Eu criei um monte de coisas, então isso é apenas uma parte dela. Estes são apenas alguns ativos menores do jogo. E vamos usá-los para criar nosso próprio jogo pequeno. E esses artistas, artistas que criam isso, esses ativos são muito talentosos, então foi muito legal trabalhar nisso. E além desses ativos 3D, nós também temos áudio, e eu acabei de inserir dois diferentes como efeitos. E temos plantas. Eu só criei algumas plantas de iluminação para que você possa ver ou se você arrastá-lo para fora, nós temos uma luz que podemos colocar ao redor. E eu vou te mostrar como criar isso também. E nós também vamos criar outros projetos aqui. Temos mapas, temos o mapa do submundo, que é este mapa atual em que estamos. E nós temos o mapa final, que é este mapa em que estamos quando terminamos o jogo. E nós temos esses ativos do mercado, que são de graça. E temos esta vela com efeito, efeitos
visuais, que é apenas esta iluminação de velas. Antes de começarmos, quero explicar-te do que se trata este jogo. E o que o jogo deles é sobre você não uma bola pequena e esta bola você pode controlar o que era, são as setas em seu teclado. E esta bola está apenas rolando ao redor coletando todas as moedas no nível. E então quando você terminar de coletar as moedas, você vai para dentro deste portal, que então vai terminar o jogo, e você vai acabar nesta tela final. Então, vamos aprender como criar a carga de um cliente. As moedas, passar por cima e mudar de nível e fazer a tela final. E dependendo de alguns, se você tiver obtido todas as moedas são quantas moedas você tem recebido, seu vai obter troféus diferentes. Temos aqui um troféu de bronze. Temos um troféu de prata e depois um troféu de ouro. Então vamos ganhar um desses troféus. E aqui também temos uma plataforma na qual podemos colocar o troféu. E este será um jogo legal, tão simples, apenas coletando moedas, dependendo de quantas moedas você coletou, você receberá um troféu. E aqui você jogo indie com seu personagem. Então isso será perfeito para o nosso primeiro jogo. Nada muito complexo, mas ainda aprenderemos muito. E é muito legal que antes aprendemos todos os fundamentos da programação, mas também é mais legal juntar tudo e tentar usá-lo. Porque às vezes é confuso quando você usa apenas uma corda de impressão. E às vezes é mais difícil imaginar como juntar todas essas coisas que você aprendeu para criar um jogo inteiro. Chega de falar sobre o jogo. Vamos passar para a próxima lição e realmente começar a fazer o projeto.
61. Modo e jogador: Então vamos em frente e configurar o modo de jogo e o controlador do jogador. Então aqui na pasta Blueprints, clique com o botão direito do mouse e clique em Blueprint Class. E vamos escolher o controlador do jogador. Não importa o que você escolher primeiro foi apenas criado o controlador do jogador e chamá-lo de PC. E vamos chamar-lhe o nome do jogo. Então coletor de dívidas e clique com o botão direito do mouse, crie uma classe Blueprint. E vamos criar o Modo de Jogo. E lembre-se que o controlador jogador é, é um Controladores e ator responsável por controlar sobre usado pelo jogador. Então vamos usá-lo para controlar o personagem que estamos criando em um pouco. E o modo de jogo
é, está definindo as regras do jogo, a pontuação, e assim por diante. Eles criarão um modo de jogo chamado coletor de dívidas GM. Então agora temos um modo de jogo e um controlador preto. A fim de usar este modo de jogo. E o controlador do jogador, estes são os personalizados. Vamos em frente e editar e as configurações do projeto. E dentro daqui temos algo chamado mapas e modos. E dentro daqui temos o modo de jogo padrão e temos que
mudá-lo para o personalizado que acabamos de fazer o coletor de dívidas GM. Este é o nosso modo de jogo. Clique na seta aqui e no modo de jogo selecionado, e você verá todas essas classes, o padrão nascido. Nós realmente não temos um pungente padrão. Vamos criá-lo em um pouco, mas temos um controlador de jogador. Então vamos mudar este para o coletor de morte PC, que é o nosso controlador de jogador personalizado. Vamos fechá-lo. E só para ter certeza, Entre no modo de jogo aqui. E dentro do modo de jogo. Basta verificar aqui à direita que nós, o controlador jogador é realmente o cobrador de dívidas PC e isso está correto. Então, isso é bom. Vamos fechá-lo. E dentro das configurações do mundo para a direita aqui. Então, clique nas configurações do mundo. Você também tem que mudá-lo para o músculo. Lembre-se, clique no mapa para o qual deseja alterá-lo. Então vamos começar com o mapa do mundo. Aqui nas configurações do mundo, altere o modo de jogo para coletor de dívidas GM, e apenas certifique-se de que o controlador do jogador é coletor de dados PCI. Então isso está correto. Vamos clicar no mapa e olhar para as configurações do mundo. Altere o modo de jogo para coletor de dívidas GM e PC esse coletor. Então lembre-se que este é um erro que muitos cometem. Você vai ficar confuso por que seu jogo não está funcionando da maneira que você queria. E isso é porque talvez você tenha esquecido de realmente atribuir o modo de jogo. Então lembre-se de atribuir o modo de jogo. E vamos em frente e abrir os maiores de controle de inundação para ver se temos que fazer alguma coisa aqui. E isso está ótimo. Então vamos, o que foi mesmo? Deixe-me clicar no modo de jogo e clicar aqui para abrir o editor completo. E isso ocorre porque o, o, a classe blueprint está vazia. É por isso que isto vai ser em tela cheia. Então, clique em abrir editor de blueprint completo e ele vai abrir como antes. E eu só queria ver se preciso editar algo aqui. E também parece bem. Então vamos fechá-lo e isso é bom por enquanto. Sempre voltaremos e faremos algumas mudanças quando precisarmos. Então vamos tentar configurar o personagem agora.
62. Como criar o personagem: Ok, então o personagem em cima vai ser apenas uma bola que está rolando ao redor que nós vamos controlar. Então vamos criar esse personagem, clique com o botão direito aqui e criar uma classe blueprint. Agora temos que decidir qual deve ser o personagem. Temos algo chamado Pon, temos algo chamado caráter. E lembre-se que o pon é um, é um ator que pode ser possuído. Então podemos realmente controlar isso. Nós também temos um personagem que tem a capacidade de andar por aí. Mas você pode imaginar que um personagem era duas pernas, dois braços. A coisa que temos é só uma bola. Então isso será suficiente para nós. Só precisamos controlar a bola. Não crie um ator porque um ator não pode receber entrada de um controlador. Então temos que escolher, e vamos chamá-lo de VP bola. Ok, então este é o jogador, clique duas vezes nele. E dentro daqui só queremos fazer uma esfera simples. Mas vá em frente e clique em adicionar em uma esfera. E aqui você pode renomeá-lo. A maneira como você renomear é clicar com o botão direito do mouse e renomear ou a maneira mais rápida, que eu costumo fazer é clicar em F2 e você pode fazê-lo com tudo. Você pode apenas clicar fora para, clique fora para bola não qualificada. E esta bola aqui você pode ver aqui se eu compilar, salvar e fechá-la, se eu arrastá-la para fora, você pode ver que esta é a bola que realmente vai ser controlada. Clique duas vezes na bola. E vamos em frente. E aqui podemos adicionar uma câmera. Precisamos de uma câmera para ver a bola. E precisamos de uma câmera como esta. Precisamos de uma visão de cima para baixo da bola. Então vá em frente e clique em Adicionar. E antes de adicionarmos essa câmera, precisamos adicionar um braço de mola. E o que é um braço de mola, é que você pode imaginar um suporte para a câmera. Então vá em frente e, e a câmera. Agora temos a bola. A bola ou o braço da mola está preso
à bola e as câmeras ligadas à mola para cima. Então agora se clicarmos na mola e clicarmos em E para girar, você pode ver se giramos a câmera está presa ao braço da mola e podemos realmente
girá-lo para obter a visão correta da bola, mas compilar. Então talvez queiramos este espectador, mas sempre ajustamos o quando jogamos o jogo. Se isso não for satisfatório, quando
jogarmos o jogo, podemos sempre entrar e mudar a rotação um pouco. Se você não quiser que ele se encaixe, você sempre pode remover este Snap aparecer e simplesmente girá-lo ao seu gosto. Tudo bem, por enquanto. E aqui no braço da mola, você também pode mudar o comprimento do braço. Então, quão longe você está assistindo a bola. Então este é o ok por enquanto. Podemos sempre tentar ajustá-lo mais tarde, a menos que seja 600 por agora. E isso é bom. Então, vamos clicar em Salvar tudo. E isso parece bom. E foi isso para o personagem criado. Então agora temos um personagem que podemos colocar no chão aqui. E você pode ver que nós temos, nós temos um pequeno bug aqui. Você pode ver se ele vai para o subsolo. A câmera fica assim. E se o colocarmos no chão, estará correto. Então o que podemos fazer na verdade, isso é porque a câmera aqui é a primavera, eu sinto muito. Tem algo chamado teste de colisão. E isso é porque quando atinge algo, vai fazer colisões com ele. Mas não queremos fazer colisões. E agora, quando o derrubarmos no chão, você pode ver que na verdade não está incomodando, ok? E também outro bug é que se nós arrastá-lo para fora, você pode ver que a bola está na verdade sob o solo. Então clique duas vezes na bola. E vamos para o visor. Clique na bola aqui. E eu só vou aplicar este estalo. Então clique, mova-o para cima quando você pode ver que ele está agora acima do solo. Nós também podemos ser precisos, isso agora é preciso, mas imagine que se você tivesse algo que você queria ser mais preciso sobre ele, você pode usar esses modos de visualização. Então vá para o modo de visualização da esquerda ou direita. E vocês podem ver que esta parede precisa estar acima desta linha vermelha, que é o solo. Compilar e Salvar como voltar para o modo de perspectiva. E vamos, vamos em frente e fechar isso, colocando a bola. Você pode ver agora que está acima do solo. E a câmera também está correta. Então, se clicar com o botão direito sobre esta bola e clicar na bola piloto BP, você pode ver que esta é realmente a visão da bola em que estamos atualmente. Para sair desta vista aqui, você pode realmente apenas injetar a câmera aqui. Então saia da câmera. E vamos apagar este cofre por enquanto. Então, isso é muito legal aulas de blueprint. Você sempre pode arrastá-los para dentro e eles estão prontos para ir. Então vamos em frente na próxima lição e aprender como fazer o movimento do personagem.
63. Movimento em personagens: Vamos agora fazer o movimento do personagem. Então eu gosto de fazer o movimento dentro do controle do jogador. Então vá em frente e clique duas vezes neste controlador de fluxo. E eu estou indo em frente e deletando todos esses eventos. Eu vou fazer o meu próprio ou adicioná-los, se necessário. E o que precisamos fazer é usar algo chamado torque. Então aqui podemos escrever torque. E se você não encontrá-lo para remover este contexto sensível, nós temos algo chamado um torque em graus e radianos. Estamos indo para aquele chamado em radianos. Então agora torque é uma força que você adiciona para mover a bola que eu vou mostrar-lhe como movê-la. Torque é uma força para aplicar à bola para que possamos movê-la. E isso não é o que usamos para personagens que têm duas pernas, dois braços para andar. Mas para bolas como esta, temos que usar um forçado para movê-los ao redor, que é chamado de torque. Certo, agora eu ensinei, mas precisamos de um evento. Lembre-se que precisamos começar com um evento para se conectar com esta função. E o evento que vamos fazer é quando você clica w, você quer avançar e assim por diante. Então, em vez de, em vez de entrar aqui e escrever a tecla W e fazer
isso, isso é, isso é codificado. Você pode fazer assim. Mas o problema é, é que se você estiver no jogo e o jogador vai
no menu de configurações e o jogador um para mudar a tecla W para outra coisa. Você não pode implantar, não pode fazer isso porque w é codificado como o evento para avançar. Então, uma maneira melhor de fazer isso é ir para o arquivo ou para Editar configurações do projeto. E dentro daqui temos algo chamado entrada. E a entrada, temos algo chamado Mapeamento de Ação e mapeamento de acesso. O mapeamento de ação é quando você clica em um botão e eu posso ver que temos algo chamado clique esquerdo. Deixe-me removê-lo por enquanto. Então temos um mapeamento de ação e um mapeamento de eixos. Assim, o mapeamento de ação é quando você clica em um botão, por exemplo, se você clicar em comedor interagir com a porta, ou se você clicar em G para soltar sua arma. Mas o mapeamento de acesso são os botões que usamos para mover e manter pressionados. Por exemplo, o W2 mover ao redor ou isso para mover para trás e assim por diante. Então, neste caso, vamos usar um mapeamento de eixos. E aqui vamos chamá-lo de seguir em frente. E aqui estamos indo para atribuir um botão para que possamos usar escrever chave W ou apenas W para encontrá-lo. E este é o WQ. Você pode adicionar-lhes outra chave aqui porque na verdade estamos indo para frente e para trás, mas eu costumo chamá-lo de avançar. Você também pode chamá-lo de mover horizontal e vertical, isso depende de você, o que faz sentido. Então, quanto a seguir para frente e para trás, em vez de encontrar as chaves aqui, quero mostrar-vos uma maneira melhor. Você pode clicar neste botão aqui e clicar na tecla S no teclado. E isso atribui automaticamente. Ok, então nós temos que seguir em frente, mover, e nós precisamos mover para a esquerda ou direita, eu deveria chamá-lo movido para a direita. Então esquerda e direita estão usando a tecla D e usando o dolorido. Ok? Também temos escalas. Então, estes precisam estar em direções opostas porque o um se move para frente e o outro para trás, o que é um número negativo. E o mesmo neste, D é um e a é o, você pode imaginá-lo como um eixo. E subir é positivo, descer é negativo. Então, só assim. E agora avançaram e seguiram para a direita? E estes podemos realmente usar como eventos. Quem fechou a entrada por agora, podemos entrar mais tarde se precisarmos de algo e abrir o controle do jogador. E aqui você pode escrever seguir em frente. Você pode ver aqui nós temos o evento eixo. Clique nisso. E nós temos que avançar evento. Tão conectado com este torque. E precisamos de um alvo para esse torque. E o alvo para este torque é, na verdade, esta malha aqui. Esta é a bola, precisamos desta bola aqui. Precisamos do, precisamos deste componente de malha estática. Então, do jeito que fazemos isso, lembre-se agora que precisamos nos comunicar com o outro Plano. Então agora precisamos usar o uso de fundição ou uma Interface Blueprint. Então vamos em frente e usar uma Interface de Blueprint. Eu gosto de fazer isso, mas vamos minimizar isso e precisamos definir uma referência para esta tigela. Vamos clicar com o botão direito em uma nova pasta chamada interfaces. Dentro daqui, vamos criar uma nova interface. Então blueprint e Blueprint Interface, chamá-lo int ball. E dentro desta interface eu quero criar uma nova função chamada set all ref. Então isso define a referência da bola. Nós criamos uma saída e chamamos de bola BP. Isto é o que chamamos de aula Blueprint Ball Blue. E esta é uma referência de objeto para o nome é o mesmo. Como a classe que criamos aqui, porque isso é o que queremos fazer referência a dois. Então agora nós temos isso e vamos chamá-lo, vamos chamar o, vamos chamá-lo de bola aqui. Este é o valor. E vamos para o baile. Esta é a bola da BP agora. E dentro daqui, lembre-se que temos que adicionar uso. Temos que adicionar interfaces de blueprint antes que possam funcionar. Então, dentro da bola BP, precisamos ir para as configurações da classe. Clique em Adicionar, e escreva bola int. Então agora nós adicionamos e você pode ver a interface aparece. Então, se você clicar nele, clique duas vezes nele. Eu disse árbitro e ouvir o quê, que bola você quer? Qual é a referência? A referência em si, porque já estamos dentro da bola vv. Essa é a referência que queremos. O que é legal agora é que podemos ir em frente e começar com o cobrador de dívidas. Então este é o controlador do jogador. E então dentro daqui podemos dizer, podemos dizer peão. E lembre-se se você não sabe o que procurar, porque quando precisamos chamar interfaces, funções
Blueprint Interface, temos que chamar primeiro a classe pai. Então, qual é a função geral? Esta é a lagoa que precisamos chamar primeiro, assim como o que fizemos com o Modo de Jogo e o controlador do jogador, escrevemos get player controller e, em seguida, fazemos referência ao controlador de fluxo do cliente. A mesma coisa com este ponto. Temos que ligar para este lago primeiro. Então, se você não sabe como é chamado, este lago direito, é assim que você os encontra da maneira mais fácil. E aqui podemos ver algo chamado Get Player on. Ok, Então quando você, quando você começa a jogar, você pode então referência a este ponto que você tem, esta é a fonte personalizada para que nós não vamos dizer custos para, nós poderíamos ter feito isso como elenco para bola BP. Mas não estamos criando elenco. Nós já temos uma interface e a função é chamada de referência set bowl. Isto vai chamar isto de referência. E já sabe que a própria referência da bola, que é esta, digamos, disse o árbitro da bola. Opa, e este é o errado. Disse árbitro da bola. Lembre-se que ele precisa ser a mensagem porque esta é a função de interface. E agora como a bola ou como esta classe blueprint, agora
podemos realmente agarrar esta bola Static Mesh Component. Então eu vou escrever bola. E agora você pode ver, você pode clicar em Obter bola. Então agora você tem este componente bola que você pode adicionar a este alvo. E isso é o que queremos adicionar torque. Vamos conectá-lo e clicar em compilar e o erro remove. E agora precisamos adicionar os torques. Então agora precisamos adicionar o movimento. E antes de adicionarmos o movimento, antes que eu me esqueça, vamos em frente dentro da Edição, Configurações
do Projeto e mapas e modos. E vamos mudar a classe de peão padrão, 2, massa BP. Agora temos essa aula de peões. Vamos fechá-lo e apenas clicar duas vezes
no Gamow apenas para ter certeza de que ele está definido para BP bola. Isso é correto. E basta ir para as configurações do Mundo e certificar-se de que é a bola VP. Isso também está correto. Ok, então isso é configuração e vamos voltar para o controle do jogador. Agora precisamos decidir em que direção precisamos adicionar o torque, porque o torque é uma força que é adicionada à tigela. E podemos adicionar a floresta ao eixo x, ao eixo y ou ao eixo z. Portanto, temos que decidir qual desses eixos é a frente e qual é a esquerda e a direita. Certo, vamos em frente e do jeito que você pode, o jeito que podemos descobrir é apenas ir em frente e criar um cubo, qualquer forma que você quiser criar e movê-lo para cima. E você pode ver aqui o eixo y que podemos usar para avançar e para trás, ou podemos usar o eixo x, então depende de você. Mas podemos realmente usar este eixo x. Agora lembre-se, a cor vermelha é o eixo x. Você pode vê-lo aqui à direita. E podemos usar este eixo x e podemos usar o eixo y para mover para a esquerda e para a direita. Vamos tentar fazer isso. Então vamos para o controle. E dentro daqui, você pode clicar com o botão direito do mouse e clicar em Dividir pino para exibir o eixo individual. Ou você pode arrastá-lo para fora e escrever make vector. E você pode fazer isso também. Eu só vou fazer o vetor e o eixo X. E isso é, na verdade, quando você pressiona W e avança, isso realmente vai se mover ao longo do eixo. Então este é o mapeamento do eixo que capturamos cedo, criado anteriormente. Bem, vamos avançar e avançar para a frente e para trás, vamos colocá-lo para o x. Ok, Então isso é porque aqui se eu inseri novamente, qualquer forma, então aplicá-lo ao x é realmente desta maneira, então ele vai se mover para a frente desta forma. Então, movendo o positivo e o negativo, vamos falar com o x. e vamos compilar e salvar. Vamos clicar, vamos clicar em Reproduzir. E nada acontece quando você tenta clicar. E isso é porque você pode ver aqui ele está realmente voando acima do solo também. E este é um dólar que temos, nós não temos nenhuma física, nós provavelmente precisamos simular física. Então, se eu clicar em escapar, ele realmente diz que aqui para cerveja tem que ter Simular Física habilitado. Então vamos em frente e clicar duas vezes nessa bola. Podemos clicar na bola aqui e aqui em baixo temos algo chamado simular física. Torque é física e temos que aplicá-lo. Vamos compilar e clicar em Reproduzir novamente e ver o que acontece. Vamos cair. E quando eu clico W, não está se movendo. Na verdade, está aqui. Vamos realmente colocar um jogador começa em algum lugar no mapa para que não comecemos no topo. Então vá em frente e clique em Criar. E você tem algo chamado Jogador Start. Coloque este jogador começar aqui, em
qualquer lugar no mapa. Clique em Reproduzir. E agora estamos no subsolo. Então, se eu clicar em W, nada acontece. E isso ocorre porque a força que estamos aplicando, o torque que estamos aplicando não é forte o suficiente. E o que queremos fazer é apenas multiplicar. Agora vamos multiplicar o torque multiplicado por este número e ver o que acontece. E vamos colocar esse resultado final dentro do vetor. Então agora estamos multiplicando a força quando colocamos W. E agora estamos nos movendo e isso é almoço comido, tão estranho. E isto é porque a câmara está a seguir a bola, está bem? Seguindo a bola e não queremos fazer isso. Então vamos clicar a cabeça no braço da mola. E na primavera e nós temos que ir aqui para o topo. E esta é a rotação, isso é o que está causando o problema. E em vez de sentar o tipo de rotação dois relativo, em
seguida, configurá-lo para o mundo. Ok, compilar e salvar. E vamos dar uma olhada. Também. Eu acho que nossa bola está se movendo na direção errada porque este é o eixo x. Nós colocamos o torque no eixo x, e este é o eixo x. Então, quando pressionamos W, ele realmente vai se mover para o lado. Então, na verdade,
ele está indo, é precisa estar no y e seguir para frente e para trás. Então deixe-me conectá-lo aqui e colocá-lo sob o porquê? Correção simples. Vamos clicar em Reproduzir e ver o que acontece. Então agora funciona para que possa avançar e recuar. Acho que o movimento é muito rápido. Então vamos remover 10 daqui e compilar e jogar. Acho que é mais razoável. Isso é bom. Agora, qual é esse número? 123456, zeros, 1 milhão aqui você pode colocar, Ok, então agora isso está funcionando. Agora temos que ir para a esquerda e para a direita. Lembre-se que o evento que fizemos antes é mover para a direita. E precisamos escolher este evento, não desvalorizar a construção do evento. Vamos copiar e colar isso porque precisamos da mesma informação. Então vamos copiar colar tudo isso e você também pode copiar esse torque. Vamos conectá-lo. Certo, agora temos a mesma informação. E eu só me lembro de copiar colar se você tiver a mesma coisa, nós não precisamos perder tempo criando todas as mesmas coisas novamente. Então aqui temos o valor do eixo, e novamente, você pode apenas multiplicá-lo pelo mesmo número, movê-lo um pouco desta maneira. E multiplicando. E assim precisamos ir para o lado. Então, este é realmente os valores x. Isso está se movendo para o lado. Então, para o x e compilar, clique em Reproduzir. Vamos tentar mover AW India, como você pode ver aqui agora você está realmente movendo a direção oposta porque quando eu pressionar D, ele se move para a esquerda e nossa empresa a, ele se move para a direita e precisa ser o oposto do que é agora. Então, para corrigir isso, vá para Editar e dentro das configurações do projeto, dentro da entrada. E aqui quando você pressiona DNA, estes realmente precisam ser trocados. Então menos um aqui e um aqui. Ok, então vamos jogar, e agora estamos nos movendo corretamente. Agora posso pressionar a, W, D e S, e posso mover minha bola. Então este é o movimento que fizemos até agora. E se eu clicar se 11 para ver o quão longe eu estou da tela, eu posso apenas torná-lo uma câmera um pouco mais longe. E então eu acho que eu estou farto com este uplink na primavera. Em vez de 600, você pode chegar a 800, embora o braço da mola esteja um pouco mais longe, então podemos ver um pouco mais. E este é o resultado que temos até agora, e estou feliz com isso. Ok, isso está ótimo. Então este foi o fim para o movimento do jogador. Agora temos uma bola e ela pode se mover. E se precisarmos aumentar a velocidade, você pode simplesmente ir em frente dentro do controle do jogador e ajustado este este número de multiplicação. Então, torná-lo mais alto se você quiser se mover mais rápido. Então a próxima coisa que queremos fazer é criar a moeda no chão. Então vamos passar para a próxima lição e criar isso.
64. Como criar o rolagem: Ok, então agora vamos fazer o pergaminho. E em vez de uma moeda, eu realmente quero fazer um pergaminho. Acho que isto é um pouco mais interessante. E o que eu encontrei também é este pergaminho aqui. E sob o 3D e suas energias renováveis, temos este pergaminho SM. E isso também fez para comprar Kraft. Acho que foi um pouco mais interessante. Vamos fazer pergaminhos em vez de moedas. Então agora temos que fazer esses pergaminhos carregáveis. E a maneira como fazemos isso é ir em frente e criar um, um, um, um, um, um projeto. Então clique com o botão direito do mouse nas plantas. Crie uma classe de blueprint
e, em seguida, selecione ator. Não precisamos de movimento nem nada. Então vamos fazer um ator simples, chamá-lo de BP, rolar e clicar duas vezes nele. E dentro daqui, nos componentes queremos adicionar uma malha estática. Então, uma malha simples e vamos chamá-la de rolagem. Agora abaixo aqui e sob a medida estática no painel Detalhes, vamos encontrar a escrita de rolagem, procurando rolagem, olhando para ela. Ou outra coisa é se você tê-lo aqui no Reino Unido ou no Navegador de Conteúdo aqui embaixo. E também ter tomado aqui e arrastá-lo em cima deste. E este é o BP, desculpe. Então temos que ir e sob as energias renováveis
3D e ASAM rolagem e você pode arrastá-lo para cima dele. Certo, agora temos este pergaminho. E você pode ver aqui, se nós arrastá-lo para o mundo, agora nós temos um pergaminho e isso é legal. Então, se clicarmos em jogo não está procurando, e então agora temos um pergaminho, podemos saquear um problema com isso ou não um problema, mas parece chato. Precisa de um pouco mais de movimento. Por exemplo, pairando para cima e para baixo. E vamos fazer isso. Vamos apagar o pergaminho por enquanto. Volte aos blueprints, clique duas vezes na rolagem BP. E dentro daqui queremos fazer um código. Então faça algumas plantas, remova esses eventos aqui. Vamos fazer o Begin Play. E agora quero te ensinar sobre a linha do tempo. Então vá até aqui e escreva a linha do tempo. E há algo chamado Adicionar Linha do Tempo. Então, o que uma linha do tempo é realmente o fuzileiro ele no início, e eu vou chamá-lo de movimentos de rolagem. Então o que é uma linha do tempo, você pode fazer movimentos suaves com uma linha do tempo. Então, por exemplo, você pode imaginar uma porta no jogo e a porta se abre suavemente. Isso é feito com uma linha do tempo. Ou se você tem aquele sistema de dia e noite e o sol se põe e então há um pouco de sol se põe. Você também faz isso sem problemas com uma linha do tempo. Neste caso, queremos mover a rolagem para cima e para baixo, para cima e para baixo lentamente. E isso também é feito com sua linha do tempo. Então, podemos fazer movimentos suaves ou um loop de movimentos intestinais com isso. Então, aqui no início do jogo, em vez de iniciá-lo a partir do Play, Vamos fazer o jogo desde o início. Então ele vai reproduzir a animação desde o início. E antes de fazermos qualquer coisa, vamos clicar duas vezes nesta linha do tempo. Você entra em um gráfico como este. E aqui você pode adicionar gráficos diferentes. Você pode adicionar uma faixa flutuante. Então esta é a variável flutuante, assim como se você fez uma variável aqui, este é um número com decimais. Você pode fazer um vetor, ele pode fazer uma pista de eventos, e você pode fazer um caminhão colorido. Por isto. Vamos ver o que precisamos. O que precisamos aqui? Então, o que estamos tentando fazer é que estamos tentando
ajustar a localização deste pergaminho para que nós estamos mudando o local. Então começa a temer, por exemplo. E queremos definir o novo local para estar aqui e depois aqui e depois aqui e assim por diante. Então estamos tentando ajustar o local que tentou pegar essa malha de rolagem. E aqui estamos nós. Estamos escrevendo a localização. E você pode ver algo chamado localização relativa definida. Clique neste e conecte-o para atualizar. Portanto, queremos atualizar a localização do pergaminho. Ok, então a nova localização vai ser conectada aqui. Então, na verdade, Opa, vou deixar isso de novo. Então realmente preciso de um vetor. Então clique duas vezes nesta linha do tempo e queremos adicionar uma faixa vetorial. E como esta é a entrada que queremos adicionar, agora dê-lhe um nome. Vamos dar um nome a ele. Movimento ou outros, ou localização alfa, localização alfa. Mas este vai ser o movimento suave. E este nome também vai aparecer aqui. Então este vai realmente ser ligado aqui. Ok, então antes de fazermos qualquer coisa, vamos clicar duas vezes nesta linha do tempo. E aqui temos o x, y e z. Então clique com o botão direito do mouse e clique em Adicionar tecla a todas as curvas. Vamos adicionar mais duas chaves. Agora. Você pode ver aqui que se eu arrastar isso para longe, este é o eixo x, este é o eixo y, e este é o eixo z porque este é um vetor. Lembre-se que temos três números em um vetor. Deixe-me controlar, Controle Z para desfazer todos esses movimentos. Então deixe-os estar aqui. Módulo marque todos eles, selecione todos eles e faça 0 e o tempo até aqui. E para o último. Aqui você pode escolher que o comprimento da linha do tempo, Eu quero que seja de três segundos. Então todo o movimento vai ser de três segundos e então ele vai fazer loop novamente. Aqui eu quero selecionar os últimos pontos e fazer três. Aqui é tempo de três segundos, e o valor é 0. Então agora está aqui. E este tem de estar no meio, porque vai voltar para cima e para baixo. E então ele vai continuar fazendo loop nesse movimento. Eu vou colocar 1.5, então é no meio. E deixe-me tentar fazer isso. Você tem que testar isso. Eu acho que 20 você da última vez que eu fiz isso, 20 era o número perfeito, mas vamos tentar ver se você tem que testá-lo. E para ver todo o gráfico, você tem que clicar nestes dois botões. Então Zoom Para Ajustar horizontalmente e verticalmente. Então agora você tem isso. Vamos voltar ao gráfico de eventos. E temos isso ligado para atualizar. E vamos ligar a localização Alpha, compilar e clicar em Reproduzir e ver o que acontece. E você pode ver agora que ele está realmente se movendo. Não se moveu para cima, mas para todos os sites. E a razão é que nós realmente não queremos,
para afetar todos os locais. Tentei separá-lo e fazer e fazer vetor. E nós só queremos afetar o z, então para cima e para baixo. E também com isso, podemos fazer quebra vetor e podemos realmente ligá-lo no z. e os outros queremos ser 000. Isso é bom. Assim como este. E, a fim de endireitá-los, você pode segurar e clicar q. Ok, então agora nós temos isso, e vamos compilar clique em Reproduzir e ver o que acontece. Agora está se movendo para cima e para baixo. Então isso parece correto, mas não está em loop. E isso é porque você tem que clicar duas vezes na linha do tempo. E aqui em cima, você tem algo chamado loop. E também podemos usar o último quadro-chave. Vai compilar, clicar em Salvar, clicar em Reproduzir, e ver o que acontece se eu torná-lo em tela cheia. Agora está se movendo para cima e para baixo. Pode torná-lo um pouco, torná-lo um pouco mais suave. Se você ampliar aqui, você seleciona todos os pontos e você pode clicar com o botão direito do mouse e fazer auto aqui. Agora está fazendo esse movimento suave para o nosso gráfico. E eu acho que nós queremos fazer isso um pouco maior porque ele não está realmente se movendo tanto para cima e para baixo. Então talvez 40. Deixe-me tentar por você. Clique em Reproduzir. E agora parece muito melhor, mas precisa ser mais suave quando termina. Então aqui nós queremos nos esforçar para tornar isso um pouco mais suave, assim. Compilando clique em Reproduzir e veja o que acontece. Ok, então agora está ótimo. E agora, quando eu entro nele, agora é muito longe no céu, então vamos movê-lo para baixo, na verdade, assim. Clique no jogo. E então, quando eu me mudo para ele, você pode ver que ele está realmente me bloqueando. Queremos remover a colisão
do pergaminho porque não precisamos dela para nos afastar. Clique duas vezes aqui e na malha estática, descemos para colisão e removemos a colisão. Então eu não faria colisão. Certo, então agora podemos nos mover dentro do pergaminho sem fazer nada. Então o próximo passo que queremos fazer é realmente torná-lo carregável. Nós fizemos agora está criando esta linha do tempo. E a linha do tempo é jogada desde o início. Estamos atualizando esta animação, o novo local para esta rolagem. E na próxima lição, vamos realmente tornar este pergaminho louvável.
65. Como fazer o rolagem: Então agora é hora de tornar este pergaminho durável. Então o que queremos fazer é quando o jogador entrar no pergaminho, vamos fazê-lo desaparecer. E a pleura recebe algum tipo de pontos ou pontos por saquear o pergaminho. Então vamos lá e clicar no pergaminho. E o que queremos fazer primeiro, um, o jogador entra no pergaminho, algo precisa acontecer. E para esta falsificação, nós realmente precisamos adicionar uma caixa de gatilho ou uma caixa de colisão. E precisamos adicionar um evento de gatilho. Bem, vamos adicionar uma esfera ou uma caixa. E vamos adicionar uma colisão de esfera para este. Deixe-me torná-lo maior aqui no raio da esfera. Então, assim, eu realmente só quero movê-lo para longe e ver como ele se parece no mundo. E para isso acontecer, precisamos clicar nisso escondido no jogo. Precisamos removê-lo. E vamos ver como é. Parece com isto. E vamos tentar talvez um pouco menor. Vamos fazer 100 ou 120 e ver como é. Então agora temos essa esfera. E o que queremos fazer é dentro do gráfico de eventos, queremos clicar na esfera e na parte inferior
temos algo chamado no componente começar sobreposição. O que acontece quando se sobrepõe a esta caixa de colisão? Ok? O que queremos simplesmente acontecer é apenas fazê-lo desaparecer para que o jogador tenha saqueado. E isso é muito simples. Este é apenas o Destruir Ator. E que ator você quer destruir? Eu realmente quero destruir eu mesmo porque estamos dentro do pergaminho da BP. E assim eu como o alvo está correto. Mas eu só quero que o jogador colida com este pergaminho. Então lembre-se, e se você tiver vários inimigos no nível e o inimigo entrar nesta caixa, não
queremos que este bug ou este pergaminho desapareça. Só queremos que desapareça se o jogador entrar nele. Então, dessa forma, o que aprendemos antes no outro ator, este é o ator que está sobrepondo o pergaminho. Podemos dizer que o ator tem uma etiqueta. E agora podemos atribuir uma etiqueta ao jogador. Então, se voltarmos a essa bola BP, se clicarmos nela e você escrever tag aqui em cima. Então agora temos essa tag de ator. Vamos clicar no sinal de mais. E aqui podemos escrever camada. E agora nós demos esta bola VP, o jogador de tag. E agora aqui no pergaminho da BP e eles começam a se sobrepor, vamos dizer, o ator tem o jogador de tag? Se isso estiver correto, então faça um loop de ramificação. Então faça isso, se isso for verdade, então destrua o ator. Se o ator não tiver o jogador de tag, por exemplo, os inimigos, então não faça nada. Vamos clicar em Reproduzir e ver o que acontece. Então, se entrarmos no pergaminho, ele deve ser destruído. E ao fazê-lo, então o código de trabalho funciona e isso está funcionando perfeitamente. Então agora o que queremos fazer é cada vez que você entrar no pergaminho, queremos adicionar pontos. E vamos fazer os pontos dentro do modo de jogo. Este é o que controla a pontuação. Então faz mais sentido fazer isso aqui. Bem, vamos aqui e fazer um evento personalizado, e vamos chamá-lo de adicionar rolagem. E rolagem vai adicionar pontos. Então aqui nas variáveis queremos fazer uma nova variável e queremos chamá-la de contador de rolagem. Então ele vai adicionar mais um cada vez que aludiu pergaminho. Então o que queremos fazer é puxá-lo para cá. Eu não sou um conjunto, apenas tomar um sair e fazer um plus, plus. E desta forma, queremos adicionar uma pontuação cada vez que olharmos para isto, o pergaminho. Mas você pode fazer é criar este evento personalizado exatamente como este, ou você pode usar a Interface Blueprint. E desde que eu quero dar-lhe um exercício em Blueprint Interfaces porque é tão importante entender. Vamos tentar criar isso em uma Interface de Blueprint. Então, queremos criar uma Interface Blueprint para o modo de jogo. Então vamos em frente, ir para o site das interfaces, classificar uma Interface Blueprint, chamá-lo int Game Mode e clicar duas vezes nele. E aqui precisamos adicionar uma função ou um evento, desculpe, chamado AD scroll. Então vamos excluir este, compilar salvar. Dentro do modo de jogo, vamos chamá-lo de rolagem. E dentro daqui, vamos ver como eu rolar, isso é bom. Certo, então vamos entrar nas configurações da aula. E nas interfaces, vamos adicionar o modo de jogo int, que foram adicionados. E agora podemos ver esse evento. E se eu apenas clicar com o botão direito e direita na rolagem. Opa, este não. Precisamos do evento. Então aqui temos algo chamado mensagem, e temos este poste de borda, que é o evento. E você pode ver que isso realmente não está sendo adicionado porque nós temos que compilar e salvar, compilar, salvar, arquivo, salvar, e agora nós podemos adicioná-lo. Agora este é o, Eu não quero editar este vídeo para fora porque na verdade eu quero mostrar-lhe os erros para que ele possa aprender. Porque agora eu posso ver o ventrículo e você pode fazê-lo. Então lembre-se de compilar e salvar isso é muito importante. Também um bom truque que posso mostrar-lhe é aqui os três pontos ao lado da compilação. Você pode clicar neles. E aqui em salvar e compilar, você pode clicar apenas sem sucesso. Então, cada vez que clicarmos em Compilar e
for bem sucedido, ele irá salvá-lo automaticamente. Não precisamos clicar em Compilar e salvar o tempo todo. Ok, então vamos ligar este modo de jogo. Então agora toda vez que perdemos um pergaminho, precisamos dizer mais, mais. Então este evento personalizado que fizemos aqui, precisamos chamá-lo aqui na sobreposição inicial. Porque toda vez que entramos nisso, isso é verdade. Queremos, queremos adicionar um a este contador e depois queremos destruir o ator. Certo, então precisamos de uma maneira de chamar isso Interface de Blueprint do evento. E a maneira como fazemos isso é que precisamos dizer e obter o Modo de Jogo. Porque isso está dentro do modo de jogo. E então precisamos de uma referência ao esquema. Então precisamos fazer isso também. Então, dentro da interface, vá em frente e faça outra função e chame-o SET modo de jogo ref. E dentro das saídas, podemos escolher a variável como GM, como chamamos, GM, esse coletor. E selecione essa. É o mesmo nome deste modo de jogo. Isto é o que você está tentando se referir. Bem, vamos voltar para a interface e aqui podemos chamá-lo de carga de jogos. Voltando ao modo de jogo, podemos clicar duas vezes nessa função. E aqui podemos escrever auto, porque agora estamos referindo este modo de jogo como eu, e agora ele sabe que é este modo de jogo. E agora podemos voltar ao pergaminho da BP. E a partir deste modo get Game, podemos dizer que k modo ref, e é a mensagem que é a partir da interface. E agora chamamos isso de jogo de ref. E agora temos esse modo de jogo. E a partir deste modo de jogo, a coisa que queremos é chamar este evento chamado add Scroll, ir aqui, escrever e rolar. E esta é uma mensagem porque esta é da interface. E vamos ligá-lo com o destruído. Então, toda vez que nos
sobrepomos com o pergaminho, vamos adicionar um ao pergaminho. E então vamos fazer outra coisa, o que quisermos fazer. Então, já que não aprendemos sobre interfaces de usuário, e eu realmente quero manter isso longe deste curso. Quero fazer um curso completo de interface de usuário. Então aqui vamos realmente usar uma string de impressão. E apenas dizer, eu sinto que é, vamos usar um
formato para agora, formatar texto e dizer que você tem carregado, você terá saqueado e nós precisamos de um número. Até agora. Então agora vai rolar. Até agora. Eu ia dizer que você carregou, por exemplo, cinco pergaminhos até agora. E precisamos levar esse contador para este texto formato. E precisamos imprimir uma corda, que podemos ligá-la assim e ligar tudo. E agora ele vai imprimir você saqueou e a quantidade de pergaminhos até agora. Ok, então vamos tentar colocar mais pergaminho. Então eu vou segurar Alt e duplicar este oval de vezes. Então, assim, jogamos e vemos o que acontece. Se entrares nisto, carregaste um pergaminho até agora. Vamos rolar até agora. Há citação até agora. Certo, agora está funcionando como queríamos. E só para alguns pequenos ajustes, eu quero ir na janela de exibição. Vamos reduzir um pouco o tamanho deste, e vamos apenas ir em frente e reduzir esta esfera para algo assim. Vamos compilar e clicar em Reproduzir e ver se isso está funcionando bem. Então agora podemos carregar os pergaminhos. E você sempre pode torná-los mais interessantes fazendo-os desaparecer com uma animação. E você pode realmente usá-lo nessa linha do tempo para talvez afetar o tamanho do pergaminho. Então, talvez eles fiquem menores quando você os carrega. E pode usar uma linha do tempo para desaparecer o pergaminho. Mas vamos manter as coisas simples por enquanto. Isso está ótimo. Vamos clicar duas vezes e clicar nessa esfera novamente. Vamos descer e bater escondido no jogo, para que não o vejamos no jogo. E agora está funcionando. Agora eu posso pular e saquear os pergaminhos como queremos e ele vai imprimir quantos pergaminhos nós carregamos. Então, antes de terminarmos o vídeo, vamos realmente jogar alguns desses pergaminhos. Eu vou acrescentar, vamos pegar o jogador começa. Vou girá-lo para que comece nesta direção. Vou trazê-lo de volta para que a cerveja comece aqui. E vamos adicionar um pergaminho. Então eu quero adicionar um aqui, e vamos adicionar um aqui. Vamos colocá-los por toda a volta. Assim como este. Ok, então agora temos um par de pergaminhos e o nível parece completo. Agora podemos dar a volta e vamos pergaminhos. E a próxima coisa que queremos fazer é, na verdade, quando carregamos os pergaminhos, queremos ir em frente e terminar aqui. E vocês podem ver aqui que não podemos nos mover na plataforma. Então a próxima lição é sobre esta plataforma. Vamos tentar fazer com que resulte.
66. Como configurar a plataforma: Ok, então agora é hora de trabalhar nesta plataforma. O que queremos fazer é quando o jogador rola em cima desta plataforma, ele levará o jogador para a tela vencedora. E, portanto, precisamos de algum tipo de bug de gatilho. Então essa plataforma, então precisamos transformar isso em um, uma classe de blueprint. Então vamos em frente e entrar em plantas. Clique com o botão direito do mouse em E vamos criar outro ator. E vamos chamar isso de uma plataforma BP. E dentro daqui, vamos fazer, vamos adicionar uma malha estática. E vamos chamar essa plataforma. Nesta malha estática, vamos procurar a plataforma. E não se chama plataforma, não me lembro como se chama. Então, no 3D, sob plataformas, na verdade não uma plataforma nas garrafas. Chama-se caminho. Chamamos de plataforma e vamos procurar caminho. E é este. Ok, então agora está dentro daqui, e vamos em frente e adicionar um bug de gatilho a ele. E este vai ser um gatilho. Cápsula é uma boa, já que a esfera também pode ser utilizável, uh, insetos. Vamos tentar adicionar uma cápsula a este. Oops. Acho que cliquei em Control Z. Deixe-me adicionar a cápsula novamente. E eu quero torná-lo maior, assim como este. E queremos adicioná-lo em algum lugar como este. Em algum lugar para aqui. E esta altura é boa. Ok, isso está bom. Então nós queremos esta cápsula e vamos compilar e salvar e mais no gráfico de eventos, Vamos excluir tudo isso. E o que queremos fazer como antes de clicar na cápsula, vá até o fundo. E aqui no componente começar a sobreposição. Precisamos fazer alguns eventos. Então vamos fazer isso na próxima lição. Mas antes de terminarmos, quero te mostrar uma coisa. Se você clicar em jogar e se mover com esse espírito que fizemos antes, e você se mover para cima desta plataforma, você está sendo bloqueado, ok? Você está sendo bloqueado e você não pode realmente subir nesta plataforma. Isso porque tem algo a ver com a colisão da plataforma. Então, se você clicar na plataforma e clicar neste botão de navegação, esta lupa. Isso nos levará à plataforma aqui no Navegador de Conteúdo. E você pode clicar duas vezes nessa plataforma. E agora estamos aqui neste espectador e nesta plataforma. E o que eu quero fazer é clicar em Mostrar e, em seguida, ir a colisão simples. Isto é o que ele está usando agora. Você pode ver que esta simples colisão está nos impedindo de subir esta plataforma que está nos bloqueando. Então a colisão não é muito boa, mas precisamos fazer é transformá-la em colisão complexa. Na verdade, é assim. E você não quer fazer isso com todas as modelos do jogo. Isso será muito caro. Você só quer fazê-lo quando é necessário, assim como neste caso, por exemplo. E todos os outros componentes em seu jogo que podem ter a colisão simples, pode ter as colisões simples para o primeiro caso, vamos usar esta colisão complexa. E agora só estamos mostrando, então não estamos nos inscrevendo. Então aqui à direita, desça para colisão. E aqui você pode ver algo chamado complexidade de colisão. E a necessidade de mudar o padrão do projeto para usar complexo, eu uso concreto simples como complexo. Agora use colisão complexa como simples. Agora estamos usando a colisão complexa. Clique em salvar, compilar salvar. Vamos clicar em Play e ver o que acontece. Então, por que a tela e se moverá? E eu preciso, eu preciso de um pouco de velocidade agora você pode realmente subir a plataforma. Vi que nos aproximamos, mas agora podemos escalar a plataforma. Mas precisamos da velocidade da bola para podermos nos atirar pelas escadas. E agora você pode ver que estamos na plataforma. E agora funciona. Agora podemos escalar a plataforma. Então vamos em frente na próxima lição e realmente codificar a lógica para o que acontece quando você ganha o jogo.
67. a mudar níveis: Ok, então agora que adicionamos a cápsula e configuramos a plataforma, nós realmente queremos que o nível mude sempre que o jogador atingir este gatilho cápsula na plataforma. Agora mesmo antes de fazermos qualquer coisa, vamos apagar esta plataforma. E porque esta é a malha estática que tínhamos antes, e vamos puxar essa plataforma BP que fizemos. E isso é porque temos esse gatilho, um gatilho de cápsula nele. E vamos clicar duas vezes aqui. E no início da sobreposição para esta cápsula, queremos fazer o nível aberto. É assim que mudamos os níveis. Então abrimos este nível que queremos abrir. E o que queremos abrir dentro dos mapas, este chamado de mapa e você tem que escrevê-lo exatamente como é chamado Matt end assim. E só queremos que os jogadores afetem esse gatilho. Então não queremos que os inimigos vão para o próximo nível. Então aqui podemos escrever ator tem marcado e mudar o mapa ou escrever o jogador tag. Então, se o ator tem o jogador de tag, então vá em frente e altere-os. Se não estiver marcado no Player, então não faça nada. Então, geralmente é isso. Então, vamos compilar e clicar em Reproduzir. E vamos até a plataforma e ver o que acontece. E isso muda o nível de fato. Então, vamos voltar. E agora temos um monte de erros que podemos corrigir excesso nenhum
tentando ler aquele árbitro bola. Está bem. Então está falando sobre “Vamos voltar para o coletor de plantas aqui”. E a coisa legal, na verdade, você pode clicar nas setas e ele leva você para o Blueprint. Então ele está tentando dizer tentando ler este juiz bola disse, mas nada. Não há nada que eu possa ler. E isso ocorre porque o peão do jogador ainda não foi gerado. Quando isso ainda não é gerado, como, como ele sabe que este é? Então isso é algo que podemos corrigir e aqui podemos realmente fazer uma macro é válido. Ok, então esta macro é válida. Se for válido, faça isso. Se não for. Vamos, na verdade, puxar isto para que tenhamos mais espaço. Não é, então adiar, digamos 0,2 segundos, tudo bem. Ok, então se não for válido, adiado por 0,2 segundos quando estiver completo, vá em frente e corra. Isso é válido novamente até que tentamos obtê-lo válido para ir em frente e seguir em frente. Ok, bem, vamos fazer o mesmo aqui. Vamos copiar isto, mover isto e colá-lo. Então agora é assim que você faz um get validado. Então, é válido? Um jogador nasce válido? Isto é o que estamos tentando perguntar porque se não é válido, não pode realmente fazer este. E isso vai te dar erros, e nós não precisamos disso. Ok, então vamos tentar executá-lo com este código. Vamos clicar em Reproduzir. E vamos passar para a plataforma. Talvez eu deva me aproximar. E ele se move. E quando clicamos em Escape e não obtemos erros porque já corrigi-lo. Certo, então o que queremos fazer dentro do novo nível? Vamos para os mapas,
para o fim do mapa. E o que queremos aqui é fazer, vamos montar uma câmera. Então, queremos montar uma câmera. Depois de ter configurado sua visão com esta câmera, você pode ir em frente e clicar no topo deste botão na janela de exibição. E você pode clicar em Criar câmera aqui e, em seguida, selecionar o ator da câmera. E quando você faz isso, você pode ver que uma câmera é criada onde você está visualizando atualmente. Então você pode se mover com a viewport agora. E quando você coloca G para ver os ícones, você pode ver que criamos uma câmera para frente onde quer que estejamos procurando, tentamos olhar para algum lugar e, em seguida, clicar sobre isso e a câmera. Mas agora nós pegamos a câmera e esta é na verdade a antiga. Quero apagá-lo. Mas agora temos esta câmara e queremos mudar
para esta vista sempre que entrarmos no pára-brisas. E a maneira como fazemos isso antes de terminarmos o vídeo, vamos em frente e fazer isso. Este chama-se Ator Camera. Então vamos em frente e terminar o Plano de Nível. Abra o nível e lembre-se, o que codificar no Plano de Nível é específico para esse nível. E aqui podemos usar a peça inicial. E dentro deste jogo de início, temos algo chamado de alvos de visão com a mistura. E vamos remover esse terceiro alvo de visualização sensível ao contexto com a mesclagem e pode ter essa função. Então nós vamos definir a câmera para este aqui sempre que nós mudamos para o lábil. Então o alvo é o controlador do jogador. E você pode vê-lo aqui. Aqui em cima, o alvo é o controlador do jogador. Então, basta arrastar para fora do alvo e direito obter sinalizado controlador. Vamos colocar o contexto sensível novamente e carregar o controlador do jogador. E o alvo do New View é a câmera. Assim, como nesta câmera, vá para o Plano de Nível novamente, clique com o botão direito do mouse e crie uma referência a essa câmera e quem chegar ao novo alvo de exibição. Agora temos esse alvo de visão. Vamos compilar e voltar e ver se funciona. E o que eu quero fazer. Então eu não mexo isso por engano. Eu geralmente gosto de clicar com o botão direito do mouse ir para transformar e usar a sorte, agir e movimento. Certo, vamos salvar tudo. Vamos voltar ao mapa do submundo. Vamos clicar em Reproduzir. E vamos nos mover. Estamos carregando pergaminhos estavam indo para a plataforma e nós mudamos seu nível para uma tela. E você pode ver que estamos realmente dentro, então o pára-brisas. E não consigo mover o rato ou mover o WASD. E isso está realmente ótimo. Então agora podemos criar o que quisermos dentro daqui.
68. Troféus de recompensa: Certo, agora que montamos a tela do vento, vamos trabalhar nos troféus. Diga que a idéia principal é dependendo de quantos pergaminhos o jogador carregou, queremos recompensá-los com o troféu Bronx,
o troféu prata ou o troféu de ouro. Então vamos em frente e fazer isso de uma maneira simples. Temos uma plataforma aqui. Vamos colocá-lo no nível do vento. Lembre-se agora que estamos dentro de lá, o mapa termina. E vamos girar este. Mova-se um pouco para cima. Vamos colocar os troféus em cima daqui. Então, olhando as recompensas e colocá-la aqui, eu provavelmente deveria ter aplicado o que é isso. Certo, podemos tentar fazer o melhor possível. Mova-o no meio. Depois o troféu de ouro. E isso está bom por enquanto. Ok, então eu quero que todos eles fiquem invisíveis quando começarem. Então, aqui à direita e no painel Detalhes, você tem que rolar para baixo e você verá algo chamado visível. Então eu quero desmarcar o visível e eu quero torná-los visíveis através de código. Então agora tudo não é visível, apenas esta plataforma. E eu quero fazer um deles visível dependendo de quantos fornecedor de rolagem carregou. E a maneira que podemos fazer isso é, na verdade, usando uma enumeração. E antes de fazermos isso, vamos para o Plano de Nível. E vamos realmente referenciar todos esses troféus que estão dentro do nível. Então vá até aqui no Mundo, Outliner e procure por troféu. E estes são os três troféus e o nosso nível. Vamos voltar ao Plano de Nível. Eu só vou torná-lo menor. Clique no primeiro strophe, com o botão direito do mouse e crie uma referência a ele. O mesmo com os outros. Clique neles com a referência. Agora temos uma referência ao troféu de bronze, troféu de
prata e troféu de ouro. E o que queremos fazer através de blueprints está na verdade aqui no painel Detalhes. Queremos afetar essa visibilidade porque queremos ativá-la dependendo se você tiver prata, ouro ou Bronx. Então, aqui no Level Blueprint, se você arrastar para fora da referência, você pode escrever visível e você pode ver aqui definir divisibilidade. Então agora você está realmente afetando essa visibilidade. Então agora ele cria um componente de malha estática para você. E podemos definir a nova visibilidade como verdadeira para que fique visível. E vamos copiar isto aqui e colá-lo duas vezes. E eu vou juntar o troféu de prata e ouro. Ok, então agora nós temos essas três visibilidades e o que nós queremos fazer é criar uma enumeração. E lembre-se que usamos alternar na enumeração antes, dependendo de qual é o valor da enumeração, queremos reproduzir esse código específico. Então vamos em frente e criar uma enumeração dentro da pasta Blueprints. Vamos clicar com o botão direito do mouse na nova pasta chamada enumeração. E dentro daqui, vamos clicar com o botão direito. Vá para plantas e enumeração. Chame de “E copays”. E vamos clicar duas vezes. E isso, lembre-se enumeração é apenas uma lista de itens e, na verdade, uma lista de qualquer coisa. Então clique em Novo três vezes. Vamos chamar isso de bronze. O outro de prata, e o último de ouro. Está bem. E quando queremos definir essa enumeração? Porque em algum momento temos que definir F, é prata, ouro ou bronze. E podemos, na verdade, se voltarmos ao mapa para o submundo. E este é o pergaminho que fizemos. Se clicarmos duas vezes no pergaminho, você pode ver aqui que cada vez que nos sobrepõem com o pergaminho, temos alguns eventos. Nós adicionamos o pergaminho. E isso adiciona papel é do modo de jogo. Para que possamos abrir o Modo de Jogo. E dentro daqui, para que pudéssemos colocá-lo aqui. Então, toda vez que atingimos um pergaminho, vamos definir a enumeração. Por exemplo, definimos como prata ou o que quer que seja. Mas nós realmente não queremos fazer isso. Porque, por que colocaríamos o troféu de ouro, prata ou bronze toda vez que atingimos um desses pergaminhos. Isso não é bom para otimização. Nós só queremos fazer isso. Sempre que atingirmos
esta, esta plataforma, então ele vai verificar quantos pergaminhos você saqueou. E dependendo de quantos pergaminhos você carregou, ele vai te dar um dos troféus. Então vamos em frente. Dentro do modo de jogo, e vamos criar um novo evento chamado set troféu type. E eu quero fazer isso através da interface. Então vá para as interfaces, abra o modo de jogo e faça uma nova função chamada set rho tipo V. Vamos compilar e salvar. Volte para o modo de jogo, certo, Set Role V-type, quem é o evento? E o que isso, nós queremos pegar o contador de rolagem e colocá-lo aqui em baixo. E agora, se a cultura de rolagem
é, é menor ou igual a 2 pergaminhos, se isso for verdade, então queremos definir a enumeração. Então agora precisamos de uma variável para a enumeração. Agora poderíamos ir em frente e fazer uma nova variável aqui e dizer, ajustá-la para nossos troféus E e usar isso e ajustá-la para bronze, prata ou ouro. Mas o problema aqui é que estamos mudando de nível. Então, quando sua bola está atingindo esta plataforma aqui, nós estamos realmente mudando o nível. E quando você muda o nível, as variáveis d dentro do modo de jogo vai
redefinir porque você está realmente mudando o nível e faz sentido para redefinir as variáveis. Portanto, a única classe Blueprint que não está fazendo isso é chamada de Instância do Jogo. Voltando aos planos,
você pode clicar com o botão direito do mouse aqui, ler uma classe de blueprint. E dentro daqui, vamos clicar em todas as classes porque você não pode vê-lo aqui. Procure em todas as classes e procure Instância de Jogo. E você pode ver aqui há algo,
algo chamado Instância do Jogo. Assim como este. E vamos chamar o GI de Instância do Jogo e chamá-lo de coletor. Então, um jogo e postura é apenas uma instância que é executada o tempo todo. Ele também é usado muito em jogos multiplayer porque mesmo que você esteja deixando o servidor, a instância não é excluída. Então, quando mudamos os níveis e temos variáveis dentro desta instância do jogo, essas variáveis não vão mudar, elas permanecerão as mesmas, seja lá o que for que lhes dissemos. Assim, ao mudar os níveis, não
perdemos dados para essas instâncias de jogo em execução o tempo todo. Então, dentro desta instância do jogo, queremos criar uma nova variável e você pode chamá-la de troféus. Não queremos que essa variável seja excluída quando mudamos de níveis. E aqui você pode encontrar e troféus. Esta é a lista de enumeração que fizemos. Ok, então agora nós temos esta instância do jogo. E para fazer esta instância do jogo funcionar, temos que entrar no editor de edição ou nas Configurações do Projeto. E aqui dentro dos mapas e modos, temos algo chamado instância de jogo aqui em baixo. E temos que mudar esta instância do jogo para cobrador de dívidas GI. Esta é a nossa Instância de Jogo Personalizada. Então agora deve funcionar. Bem, vamos voltar ao nosso modo de jogo. E aqui, quando temos menos ou quem são menos pergaminhos coletados, queremos definir a tampa, esta operação aqui. Queremos definir a enumeração dentro da instância do jogo para bronze, ok? E aqui podemos escrever recebe instância
do jogo e temos que fazer uma referência para a instância do jogo. Então vamos fazer uma interface. Para a nossa instância de jogo. Uma Interface de Blueprint, instância de jogo final. Vá para dentro daqui. Mas uma nova função chamada ganho de conjunto e ref instantânea. Faça uma saída. Comprar sua instância de jogo. Ei cobradores de dívida nele como uma referência objeto e chamá-lo de ganho em cortiços. Ok, vamos compilar e salvar. E vamos voltar para a instância do jogo. Bem, vamos encontrá-lo e rasgar. E dentro daqui, vamos para as configurações. Vamos adicionar nossa interface. Então instância de jogo int. Vamos compilar e salvar. Clique duas vezes na função terra e superfície que fizemos. E aqui podemos escrever-nos. E agora podemos fazer referência a esta instância do jogo. Vamos salvar tudo. Agora de volta no modo de jogo, temos a instância do jogo, e agora podemos ver jogo SET. Disse instância de jogo áspero, não, não o jogo, a instância do jogo. E como instância do jogo, queremos usar essa variável de troféus. Então aqui podemos dizer que conjuntos são todas as taxas. Então, nós queremos colocar os troféus e nós queremos preparar isso para o brunch. Está bem. Então agora o que você tem dois ou menos pergaminhos? Vamos pegar o troféu de bronze. Então estamos definindo o genoma para marcas. E se for falso, vamos fazer aqui. Digamos que se você tem, se você tem mais do que dois papéis. E podemos escrever algo chamado fim. E isso é algo para os Booleans. E podemos verificar se há outra coisa. E você tem menos ou igual a cinco que se agacha. Então, se você tem 34 ou cinco pergaminhos, se isso é verdade, então isso vai ficar viciado em falso. Então, se você tem mais de dois, ele vai para baixo para falso e então ele vai verificar para estes dois. Então, se você tiver mais do que duas funções, mas menor ou igual a cinco, vamos definir o valor de enumeração como prata. Obter a instância do jogo novamente. E vamos colocá-lo em prata agora. Então, em vez de obter a instância do jogo o tempo todo, isso vai ficar confuso. Vamos realmente fazer uma variável fora disso primeiro. Então, dentro do início do jogo no modo de jogo, Meca, começar a jogar. E aqui dizemos git instância do jogo, referência a esta fase do sensor. E vamos clicar com o botão direito do mouse nisso e dizer promove uma variável e chamar essa instância do jogo. Agora temos uma variável, uma referência à instância do jogo. Então agora nós podemos realmente excluir isso. E através desta instância do jogo, podemos apenas dizer troféus. E agora ele pode definir os troféus. E agora vai parecer muito mais limpo. Em vez de fazer esse código, você pode simplesmente retirar a instância do Canvas e dizer isso. Na verdade, sim, eu só quero fazer isso individualmente. Então, digamos, troféus. E vamos ligar a verdade e chamar este de prata. E se você tiver mais de cinco pergaminhos, você vai ganhar ouro. Podemos sair disto outra vez e dizer troféus. E digamos ouro. Assim como este. Também poderíamos ter ligado aqui e deletado este. Não sei se vai parecer confuso. Isso é simplesmente bom. Podemos fazer assim. Simplesmente assim. Então agora ele vai configurá-lo para bronze, prata ou ouro, dependendo de quantos pergaminhos você carregou. Ok, então agora isso está bom. E a próxima coisa que queremos fazer é realmente usar essa enumeração. E dentro do Plano de Nível aqui. Neste fim do mapa. Queremos fazer ativar a enumeração para iniciar um desses códigos. Então vamos em frente e dizer “Obter incidência do jogo”. E a partir daqui define conjuntivos ásperos instância do jogo. E aqui na instância do jogo queremos obter a variável troféus. E este strofe é variável. Queremos dizer “ativar a enumeração”. Portanto, queremos colocar esse código dependendo do tipo de troféu que ele foi definido para. Por exemplo, se obtivermos prata, ele fará o troféu de prata visível enquanto ignora as outras duas linhas de códigos. Ok, então isso está bom. E eu não acho que nós chamamos esse evento tipo de troféu em qualquer lugar. Então vamos realmente ir em frente e chamá-lo aqui na plataforma. Então você pode realmente chamar este Troféu, tipo de troféu 2. Dois lugares que você pode chamá-lo e nós voltamos para os mapas e submundo. Você pode chamá-lo sempre que perder um pergaminho. Então, sempre que você carregar um pergaminho, você pode ir em frente. E aqui no pergaminho. Basta chamar o tipo de lucro conjunto. E ele vai definir o tipo dependendo de quantos pergaminhos você tem. Mas isso não é para otimizar
porque por que você quer definir o tipo de troféu cada vez que você perde algo? Só vamos usá-lo quando entrarmos no novo nível. Então podemos realmente usar esta plataforma para configurá-la. E isso é bom para otimização. Então você não chama um tipo de código o tempo todo ou não é necessário. E podemos chamá-lo sempre que chegarmos à plataforma. Então, na plataforma BP, sempre que tínhamos essa sobreposição antes de abrirmos o nível, vamos em frente e chamar esse evento chamado tipo de troféu definido dentro do modo de jogo. Então, dentro daqui, podemos dizer obter Modo de Jogo e definir gráfico Gamow. E aqui como modo de jogo, podemos chamar o tipo de troféu set. Assim disse tipo troféu. E agora nós o chamamos, e agora podemos abrir o nível depois. Vamos compilar e salvar tudo. Vamos tocar no Play e ver se está realmente funcionando ou se temos alguns bugs. Então agora estamos em metas de risco. Entramos no nível e ganhamos prata. Isso é legal. Vamos clicar em fuga. E se não o fizermos ou se olharmos apenas para um e
atingirmos a plataforma, temos este bronze. E vamos ver se conseguimos ouro. Se acertarmos, acho que são seis rolos, 1, 2, 3 ou 5. E vamos carregar este. E vamos entrar no portal. E aqui estamos ganhando o troféu de ouro. Então a lógica para o, para os troféus está funcionando agora e eu só quero
passar por isso muito rapidamente se você puder me dar 30 segundos. Eu sei que o vídeo está ficando muito longo. Só para te mostrar o que realmente está acontecendo. Então o que está acontecendo é que estamos caminhando dentro desses pergaminhos. Toda vez que fazemos alusão a um pergaminho, estamos levantando este contador por um. E este contador de andorinhas está contando quantas toupeiras carregamos. Dependendo de quantos pergaminhos foram carregados. Vai definir a nossa enumeração que fizemos. E chegamos aqui. Ótima. Você disse a enumeração. E essa variável é realmente criada na instância do jogo, que é por aqui. Recriado na instância do jogo porque a instância do jogo não exclui variáveis ou não redefine as variáveis sempre que alteramos níveis, ele faz. Se você tivesse adicionado o troféu, esta variável troféus dentro deste modo de jogo, ele não vai exibir o valor correto quando você alterar o nível porque ele vai redefini-la para o valor padrão, que é marcas. Temos isso na instância do jogo. E nós realmente fizemos uma variável para a instância do esquema para que possamos usá-lo e tornar o código mais limpo. E chamamos essa enumeração e colocamos em bronze, prata e ouro. E esse evento está sendo chamado sempre que atingimos a plataforma, chamamos isso, esse evento aqui para ver o que dissemos, a enumeração dois. E uma vez que o
tenhamos definido, vamos para o mapa. E dentro do Level Blueprint, vamos chamar isso a partir da instância do jogo. E nós alteramos uma enumeração dependendo de qual é o valor. Fizemos aparecer o troféu. Então agora estamos quase terminando e vamos para a próxima lição. E eu realmente quero finalizá-lo ajustando visão
da câmera e também adicionando algum efeito sonoro e coisas menores como essa. Então vamos para a próxima lição.
69. Como finalizar o jogo: Ok, então agora estamos quase terminando. O que eu quero fazer são apenas algumas coisas finalizadas. Então, para começar com dentro do mapa, e eu quero clicar com o botão direito sobre esta câmera, clique no piloto. E aqui está atualmente bloqueado a um bloco o movimento da câmera. Então clique com o botão direito nessa câmera. Você pode encontrá-lo dentro do mundo. Outliner. Clique com o botão direito do mouse na câmera na transformação, como a transformação do ator Honorlock para olhar para o movimento para removê-lo. E agora vamos, deixe-me ajustar a câmera para torná-la um pouco melhor. Deixe-me baixar a velocidade da câmera só para torná-la um pouco mais interessante. Então talvez algo como talvez algo assim seja bom. Ok, então deixe-me ejetar da câmera pressionando este botão. Então agora temos esta câmera e deixe-me clicar com o botão direito do mouse nela e sua forma. E deixe-me amar o movimento de novo para que eu não o mexa por engano. Então agora ajustamos a câmera. E a próxima coisa que eu só queria mostrar a vocês como você pode adicionar efeitos sonoros. Eu não adicionei muitos efeitos sonoros aqui neste arquivo, mas eu só quero mostrar-lhe este. E nós temos este LWD, ok, então antes que possamos usá-los com,
você tem que clicar com o botão direito do mouse e então você tem que clicar em criar fila. Então vamos chamá-lo de nível Q. Na verdade, eu costumo chamá-lo, como você vai se lembrar, é S4 Sound Sue. E você pode usar esse nível alterado. E podemos clicar com o botão direito do mouse na fila de criação e chamá-la, vamos chamá-la de loops. Ok, então agora temos essas dicas de som e você pode clicar duas vezes sobre elas. E aqui não vamos entrar em profundidade de som. Mas aqui se você quiser baixar o volume, você pode clicar nele e você pode fazer o volume mais baixo. Então eu acho que vou chegar a 0,5. Será em algum momento. Isso é bom. O mesmo com aludes. Vou fazer com que o volume seja o seu 0,5. Em vez disso. Eu mostro o menor 0.3. E isso é bom. Então agora eu tenho esses sinais sonoros e queremos
adicionar o som toda vez que vamos fazer este pergaminho. Bem, vamos até as plantas e clicar no pergaminho da PA. Então, toda vez que nos sobrepomos com
ele, vai antes que destrua o ator. Vamos tocar um som. Então, digamos tocar som 2D. Então temos este som de reprodução 2D. E eu clico sobre isso e selecione o, vamos selecionar os loops. Disseram que eu tocaria um som toda vez que amássemos um. E na plataforma BP. Vamos, vamos fazer o som de tocar. Não sei se vai soar bem, porque vamos mudar o seu nível. Vamos adicionar e ver o que acontece. Mude de nível, compile e salve tudo. E vamos em frente e clique em Play. Ou, na verdade, vamos voltar para o mapa principal, o submundo e clicar em Jogar. Sim, eles estão mudando de nível. A mudança de nível de som não está tocando porque mudamos o nível diretamente sem fazer nada. Mas podemos sempre tentar apagá-lo daqui e podemos
reproduzi-lo e falsificá-lo a partir do final do mapa. E no Plano de Nível imediatamente quando o nível começa, podemos dizer tocar som 2D. E vamos fazer isso para baixo um pouco. E podemos tocar o nível de mudança de som para que possamos fingir. Fazendo isso. Vai tocar isto. Certo, agora temos os sons no lugar. Claro, isso não é realmente imersivo. Nós, esses sons não se encaixam muito, mas eu só queria mostrar como você pode adicionar som ao seu A-game. E claro que vai soar muito melhor se você tiver som de verdade. Se você tem sons para a bola, se você tem música em cima dela e assim por diante. Então, antes de eu terminar este vídeo, lembre-se de ir para dentro das plantas. E, por exemplo, no modo de jogo, lembre-se de comentar seu código é assim, por exemplo, aqui, você pode entrar e dizer Begin Play. Então você pode realmente vê-lo de longe, como daqui. Em vez de ampliar o tempo todo, você pode vê-lo de longe. E geralmente me lembro do que faço no começo. Eu defino variáveis e coisas assim. Então você também pode escrever aqui em cima. E aqui, por exemplo, adicionando papéis quando saqueados. E lembre-se de comentar todo o código. Eu não quero fazer o vídeo muito longo. Lembre-se de comentar seu código e um nó. Outra coisa que você pode fazer para limpar o código é criar ou recolher seu código para funções. Deixe-me ir em frente e ver se precisamos desmoronar algo, duas funções. O código é bem pequeno. Então eu gosto realisticamente se eu tornasse um grande jogo atualmente e eu tivesse esse código até agora, eu não derrubaria nada. Eu deixaria que fosse como está. E talvez você possa limpar isso um pouco criando um nó ferroviário. Você pode até selecioná-los e pressionar Q para torná-los retos, e assim por diante. Então lembre-se de limpar o código, lembre-se de comentar, porque é muito difícil ler o código. Se voltar dez dias depois e não souber o que fez. Ou se um novo programador começa a programar no seu jogo e ele realmente não tem a chance de entender o que você fez se você realmente não comentou nada. Mas foi isso por enquanto e espero que você tenha se divertido e aprendido muito. É muito legal. Você começou do nada. E agora temos este jogo aqui. Bastante, bastante pequeno jogo, mas é um bom começo. E você sempre pode ir para jogos e tópicos mais avançados.
70. E AGORA?: Diverti-me a ensinar-te sobre os fundamentos das plantas. E eu também espero que você tenha se divertido aprendendo sobre os fundamentos e criando seu próprio jogo pequeno no final. Agora você pode usar o que você aprendeu para criar seu próprio jogo de vídeo pequeno, ou simplesmente criar um protótipo do projeto que você tem em mente. Neste ponto, você pode continuar a tópicos mais avançados nos blueprints. Se você deseja criar videogames mais complexos,
por favor, fique de olho nos meus futuros cursos, pois
quero lançar um curso dedicado ao desenvolvimento de jogos. Agora que aprendemos os fundamentos, se você também está interessado em como usar o motor em geral e projetar um nível otimizado de jogo. Você pode dar uma olhada no meu outro curso neste site chamado Unreal Engine cinco iniciantes curso. Espero que você tenha se divertido aprendendo os fundamentos dos projetos, e espero vê-lo em meus outros cursos.