‫Bem vindo de volta.
‫Espero que você esteja animado para gerar algumas frutas, frutas saudáveis.
‫Vamos lá.
‫E daí?
‫Nosso objetivo para este vídeo é gerar algumas frutas que serão geradas do fundo e irão disparar para a
‫nossa cena de jogo ou para a nossa visualização do jogo e então podemos cortá-las.
‫Bem, até agora podemos dividi-los, mas poderemos fazer isso mais tarde e queremos fazer isso aleatoriamente.
‫Então, queremos criar uma fruta aleatória e com uma distância aleatória no tempo.
‫Portanto, ele não deve ser criado exatamente após a mesma quantidade de tempo.
‫Então, vamos criar um novo script para isso e chamá-lo de SPONER, porque é assim que vai ser.
‫Mas não seja um spoiler.
‫Então vamos abrir isso aqui.
‫Precisaremos do método de atualização, mas precisaremos de várias variáveis.
‫Então, por exemplo, vamos precisar de um objeto de jogo.
‫Então, objeto de jogo público e aquele será o fruto a desovar.
‫Então, a fruta que queremos desovar, pode ser uma laranja, pode ser uma banana e assim por diante.
‫E queremos saber quais frutas devemos gerar.
‫Então, queremos saber quanto tempo queremos ter entre as diferentes frutas.
‫Portanto, deve ser, digamos, entre três vírgula três e um segundo.
‫Portanto, vamos criar uma espera mínima de flutuação.
‫E eu seria o ponto três segundos e o peso máximo do flutuador público.
‫Portanto, o tempo máximo que precisamos esperar por uma fruta deve ser um segundo.
‫E se fizermos assim, podemos facilmente adicionar isso dentro da unidade.
‫Isso nos permitirá fazer isso agora dentro do método start.
‫Quero dar início a uma rotina em que estivemos constantemente criando frutas depois de bem, neste momento particular que temos
‫aqui.
‫E para fazer isso, precisamos usar o método start da rotina de código de início denominado rotina.
‫E como você pode ver aqui, a rotina de Starkel precisa e eu enumerador para iniciar qualquer coisa, eu poderia muito
‫bem iniciar um método ou e iniciar um método com um objeto.
‫Mas o que realmente queremos é este aqui, a primeira sobrecarga que precisa de um enumerador I.
‫Portanto, a rotina de Stojko, é claro, agora precisa de um enumerador.
‫Então, vamos contar isso agora e vamos criar esse enumerador I.
‫E para fazer isso, precisamos criar um método que retornará.
‫E eu enumerador e suporta uma iteração simples em uma coleção não genérica.
‫Isso nos permitirá fazer bem as coisas para chamar esse método várias vezes em uma rotina de Starkel.
‫E vamos em frente e desovar frutas que vou chamar e que quero verificar aqui.
‫Embora seja verdade.
‫Portanto, enquanto essa rotina for executada, quero gerar frutas.
‫Então, o que eu quero fazer aqui no loop while é gerar retorno.
‫Portanto, não é uma instrução de retorno básica que usamos ainda.
‫É um retorno de rendimento, que você pode usar para uma nova espera de segundos.
‫Portanto, se você quiser fazer algo depois de um certo tempo, pode usar este enumerador com retorno de rendimento.
‫Então espere quatro segundos.
‫E eu queria ser um valor aleatório entre nossa faixa de peso mínimo e peso máximo.
‫Agora, o que farei aqui é simplesmente depurar aquele log e as frutas, obter mais frutas, obter sponte.
‫Tudo bem, digamos aquele script e na verdade a gente precisa chamar spon fruits em nossa, citação,
‫rotina, é claro, essas frutas nascidas sabem que tudo dá certo.
‫E vamos salvar o script mais uma vez e voltar para o Unity.
‫Tudo bem, aqui, vamos criar um novo objeto vazio e vou apenas chamar esse spawner.
‫E vamos nos livrar de todas as laranjas que tínhamos aqui, elite, e esse é o objeto Boehner, é claro, precisa de
‫um componente.
‫Então, vamos procurar um script chamado Spawner aqui.
‫E como você pode ver, poderíamos trocá-los e esperar o peso máximo a qualquer momento.
‫O fruto a desovar é, obviamente, o fruto da desova ou a fruta que queremos desovar.
‫No nosso caso, é a nossa laranja.
‫Então, vamos até o spawner e arrastamos nossa laranja até aqui, fruta para desovar.
‫E agora vamos começar.
‫Portanto, a única coisa que acontecerá agora é, claro, que irá para o Arkansas e você
‫poderá ver frutas sendo geradas cinco, seis, sete, oito.
‫Então, constantemente, as frutas são espontâneas.
‫Então isso é bom.
‫Mas é claro, não vemos muito ainda e precisaremos mudar isso.
‫Tudo bem.
‫Então, podemos gerar do spawner aqui, que tem uma posição específica, como você pode ver, enquanto está aqui, você não
‫pode ver muito bem.
‫Então, vamos adicionar um gizmo.
‫Então aqui no lado direito, próximo ao nome do spawner, você pode escolher adicionar um pequeno visual para
‫ele.
‫Então você pode ver aqui, agora eu tenho isso vamos usar essa cor roxa aqui.
‫Então este será o PATROCINADOR.
‫Este é apenas um dispositivo que me permite ver onde um objeto está, mesmo que não esteja visível no jogo.
‫Portanto, ele não tem nenhum Sprite ou qualquer animação ou coisas assim.
‫Nenhuma correspondência, nada disso.
‫E só tem este pequeno aparelho agora, que vai me mostrar onde está na minha visualização do jogo.
‫Portanto, é aqui que está e.
‫Vamos arrastar um pouco para baixo, na verdade, sua posição ou vamos redefini-lo primeiro, então ele estará
‫em zero zero zero e eu apenas irei chamar aquele spawner.
‫Nasceu o lugar, então é aqui que vai desovar.
‫Agora vamos duplicar aquele local de desova e arrastá-lo um pouco para o lado e deixar duplicar aquele novamente,
‫mais uma vez, e arrastá-lo para o lado também.
‫Portanto, agora temos esses três spawners sobre a posição.
‫Não se preocupe com isso ainda.
‫Vamos verificar mais tarde.
‫Vamos brincar com a posição vertical e descobrir qual é a posição perfeita para ela agora sobre os
‫dois locais de desova que estão ao lado.
‫Então Spawn joga para e, no meu caso, é o primeiro.
‫No seu caso, podem ser diferentes, mas quem está aqui a decidir não deve simplesmente disparar para o
‫topo.
‫Eles devem disparar ligeiramente em direção ao centro.
‫Portanto, precisamos girá-los.
‫Podemos girá-los desta forma.
‫Então, vou girá-lo assim ou poderia simplesmente adicionar o valor aqui.
‫Vou dizer girar 30 graus e também inútil, no meu caso, deveria ter menos 30 para o valor
‫Z.
‫Portanto, agora ambos irão girar um pouco.
‫Tudo bem.
‫Então, a seguir.
‫Portanto, agora vamos voltar ao nosso script.
‫Agora que temos os patrocinadores e em nosso patrocinador, precisaremos ter os diferentes locais de desova.
‫O Spawner deve saber sobre os locais de desova.
‫Então, vamos criar um array transformado, que são os nossos locais de spawn.
‫E agora dentro de nossas frutas, não queremos apenas desmascarar, mas também queremos transformar a posição da fruta que
‫é criada.
‫Portanto, a transformação T é a posição dos ossos e a posição do intervalo aleatório, e deve ser uma posição aleatória entre zero e
‫os locais de desova daquele comprimento.
‫Isso significa que, independentemente de quantos locais de desova criarmos, queremos apenas atribuir a posição de nossa
‫fruta que criamos em uma posição aleatória desses locais de palmeira.
‫Portanto, isso significa que será no primeiro local de desova, no segundo, no terceiro e assim por diante.
‫Portanto, quantos forem atribuídos, é o que dizemos aqui, locais de desova desse comprimento.
‫Esse é o local de desova que queremos escolher aqui.
‫Portanto, o índice disso será esse.
‫Agora vamos criar o objeto do jogo, que é a nossa fruta, e instanciar isso.
‫E queremos instanciar a fruta para desovar.
‫Então o fruto que queremos nasce na posição do nosso T ..
‫Então, após transformar a variável que acabamos de criar aqui, essa
‫posição e rotação.
‫Tudo bem.
‫Vamos voltar ao Unity e verificar isso.
‫Então agora o que devem os spawners na verdade, nós não atribuímos esses pontos ainda e não temos
‫mais um patrocinador, então vamos mudar isso.
‫Direito.
‫Então, aquele que eu apaguei e criou o SPONER vazio.
‫E agora vamos adicionar o script de componente aqui.
‫E era um PATROCINADOR.
‫Agora precisamos de frutas para desovar e vamos começar com a laranja novamente, como eu disse, e a próxima coisa
‫é que precisamos desovar lugares.
‫Portanto, precisamos definir quantos locais de desova temos.
‫E, por enquanto, temos três locais de desova diferentes.
‫E vou apenas arrastar os diferentes locais de desova para o meu script aqui.
‫Tudo bem.
‫Agora vamos começar o jogo e ver o que acontece.
‫E como você pode ver agora, obtemos frutas criadas aleatoriamente em nosso jogo.
‫Agora o que você não vê aqui e nesta visualização, então vamos desativar, maximizar o jogo.
‫Vamos ver o que acontece se começarmos aqui.
‫Como você pode ver, nós criamos laranjas e vamos criar muitas, muitas laranjas porque nunca as apagamos.
‫Até agora, nunca nos livramos deles.
‫Isso é algo que teremos que cuidar, é claro.
‫E, claro, também precisamos mudar a direção que eles deveriam tomar.
‫Então, atualmente, eles apenas caem e não têm nenhuma força aplicada a eles para voar para o ar.
‫Então é isso que queremos mudar.
‫Então, vamos fazer isso.
‫Vamos aplicar um pouco de força às nossas frutas.
‫E como podemos fazer isso, como podemos fazer isso?
‫Bem, nós pegamos o corpo rígido do componente para D de nossa fruta e então aplicamos uma força.
‫Portanto, adicione força e teremos dois overlords diferentes.
‫Vamos usar aquele aqui, a força e o modo.
‫Portanto, a força que queremos aplicar é transformá-la multiplicada por 10.
‫Então, esse é apenas um valor que atribuí aqui.
‫E então a força mudou para D, então a maneira que queremos forçá-los vai ser por impulso.
‫Portanto, o modo de força está realmente no lugar assim.
‫Tudo bem, vamos salvar o script e voltar para o Unity.
‫Vamos ver o que acontece.
‫E como você pode ver, eles são alvejados, batem um no outro e caem novamente.
‫Agora o que eles não têm é a rotação, então eu não gosto disso.
‫Então, vamos dar uma olhada na diferença entre os lugares.
‫Agora, é claro, nossos locais de spon precisarão mais do script de spawner, então vamos nos livrar desse
‫componente de remoção de nossos locais de spawn.
‫Tudo bem, então vamos remover o spawner aqui também.
‫Tudo bem.
‫Agora, vamos resolver rapidamente o problema de que temos frutas ilimitadas.
‫Para que não destruamos as frutas depois de um tempo.
‫Então vamos fazer isso.
‫Aqui, dizemos apenas destruir fruta após cinco segundos, portanto, o objeto do jogo que instanciamos aqui,
‫queremos destruí-lo após cinco segundos.
‫Assim que estava no ar, caiu.
‫Portanto, não há problema em destruí-lo.
‫Então, vamos dar uma olhada aqui.
‫O que acontece vai gerar e então eles serão destruídos após alguns segundos, então temos cinco, seis, sete,
‫oito e como você pode ver, as laranjas são destruídas novamente.
‫Isso é bom.
‫Ainda não funciona girá-los, então a força vai na direção em que giramos os
‫locais de desova também.
‫Então, vamos dar uma olhada nisso.
‫E a rotação ausente tem a ver com uma coisa.
‫Então, vamos voltar ao nosso código como o que fazemos aqui enquanto transformamos algo em 10.
‫E, neste caso, transformamos nosso script para adicionar uma força ao próprio spawner.
‫O que queremos, porém, é transformar nossos frutos.
‫Queremos adicionar a força de nosso TESO, que vem de nossa posição de transformação, de nosso local de desova.
‫Portanto, não queremos formar nosso próprio spawner, mas a partir de nosso local de desova e nosso local de desova tem uma
‫rotação específica.
‫Portanto, agora vamos começar de novo e ver como nossos frutos estão voando para diferentes direções.
‫E como você pode ver, eles estão voando em direções diferentes, vamos dar uma olhada.
‫Eu brinquei com os valores aqui, então este deve ser 30, aquele deve ser menos 30.
‫E podemos usar esta bomba no centro com zero.
‫Portanto, agora vamos fazer isso de novo.
‫E você verá que eles voarão em direções diferentes e atualmente eles podem até se tocar.
‫Mas cuidaremos disso mais tarde também.
‫Agora, o que precisamos mudar é a posição dos nossos lugares de apoio, porque atualmente estão
‫todos um pouco altos.
‫Então, vamos mover todos eles um pouco para menos de cinco.
‫Ou, na verdade, podemos inserir menos cinco aqui.
‫E agora, eu quero mudar a força com que eles são disparados.
‫Então, vamos dar uma olhada em como eles estão surgindo atualmente.
‫Como você pode ver, eles mal chegam ao centro.
‫Então, vamos mudar isso.
‫Para fazer isso, precisamos mudar para nos transformar.
‫Então agora são dez.
‫Mas o que poderíamos ter é uma força aleatória com a qual eles são disparados.
‫E vamos criar duas variáveis adicionais para essa força principal do flutuador público.
‫Então, digamos que doze e o float público faz força é, por exemplo, dezessete.
‫Esses são apenas valores com os quais brinquei.
‫E agora vamos multiplicar com alcance de dardo aleatório, força principal e força máxima.
‫Portanto, agora o que ele fará é nos dar um valor aleatório e adicionaremos a força aleatoriamente agora
‫entre 12 e 17 e podemos facilmente ajustar isso dentro de nossas configurações aqui.
‫Então, dentro de nosso spawner, seremos capazes de mudar isso para que você possa ver em vigor e força máxima.
‫Então vamos começar.
‫Podemos então verificar diretamente se esses valores são bons ou não.
‫Como você pode ver, eles voam e talvez você possa até ir mais longe aqui em força.
‫Eu diria 15 e Max force vinte e cinco, e então você verá que eles vão até mesmo voar para fora
‫da tela completamente e cair novamente.
‫Portanto, talvez doze e dezessete sejam bons valores, afinal.
‫Tudo bem.
‫Então é isso sobre os criadores.
‫Na verdade, ainda podemos fatiar nossas frutas, então vamos desovar algumas e fatiá-las.
‫Como você pode ver, se tivermos vários na cena, ainda podemos cortá-los.
‫Mas claro, quem quer fazer isso com nosso mouse e não com nosso teclado.
‫Excelente.
‫Então, no próximo vídeo, vamos dar uma olhada na lâmina.
‫Então, vamos criar a lâmina.
‫Olhar.
‫Então você aí.