Transcrições
1. Introdução: Bem-vindo ao meu curso. E nesta série vamos em frente e você vai aprender todos os conceitos básicos
para criar um jogo de objetos escondidos. Então, se isso é algo que você tem procurado criar, nosso questionamento sobre como é feito bem, agora você pode aprender a fazer isso. Vamos tornar nossos scripts reutilizáveis para que
possamos usá-los em vários objetos diferentes em todo o nosso jogo. Não importa quantas cenas são, quantos níveis são salas que você deseja criar. Isso inclui coletar objetos, objetos arrastáveis, chave bloqueada, transição de uma sala para outra, eu manter o controle de nosso inventário, salvar e carregar nossos dados, e assim por diante. Então, se alguma coisa parecer interessante, venha se inscrever, e te vejo no vídeo.
2. Como baixar Godot: Tudo bem, bem-vindos a todos. Esse primeiro passo para iniciar o nosso desenvolvimento do nosso jogo de objetos escondidos é tão claro, temos o nosso motor. Então, se você não tiver esse ponto de ponta a ponta já instalado, você pode acessar o site da Godot Engine.org. Hit Download aqui no topo. Seus sistemas operacionais devem ser detectados. Mas se não, você encontrará Linux, Mac OS e Windows aqui no topo. E você iria em frente e selecionar a versão padrão. Não precisamos da versão mono, pois não usaremos C-sharp durante este projeto. E você pode ver alguns dos requisitos aqui no momento é o suporte OpenGL. Se você tem alguma máquina aqui, você deve ser bom para ir. E então você tem algumas instruções aqui que tem C. Nós só, nós vamos ter um zip quando baixá-lo. Você apenas extrai-lo e você é capaz de começar a executá-lo. Alternativamente. Você pode passar pela escola. Se você sabe como fazer isso. Legal. Também está disponível em mais de uma polegada. Você pode obtê-lo e fazer o download. E está disponível através de vapor. Agora, se formos, então como você obtê-lo, você vai precisar dos modelos de exportação. Agora você pode passar por aqui. E eu vou mostrar-lhe como instalá-lo no próximo vídeo. Ou podemos realmente obtê-lo diretamente através do próprio motor, que eu vou mostrar-lhe como fazer isso também. Então, se você quiser obter a soma final, então você pode ir em frente e clique neste botão aqui, modelo de exportação padrão. E eu vou te mostrar o que fazer com esse arquivo. Se você não quer obter os arquivos físicos aqui, então eu vou te mostrar como obtê-los de dentro do motor. Então eu vou em frente e apenas ir e baixar sua versão para o seu sistema operacional. E vejo-te no próximo.
3. Como criar nosso projeto: Tudo bem, ao abrir e obter 0 pela primeira vez, você será recebido com este lançador de tipos. E como você pode ter como popup, ele pode perguntar se você quer baixar um monte de demos. Se o fizeres, vais ver tudo isto aqui dentro. E se não, bem, não se preocupe. Nenhum deles vai realmente nos ajudar para o nosso projeto neste curso. Mas enquanto estivermos aqui, podemos ir em frente e atacar o Novo Projeto. Você pode ir em frente e dar-lhe um nome. Vou chamar meus objetos escondidos, jogo de quebra-cabeça. Então eu vou ligar para o meu que você decidir onde você quer colocar. Só vou ser menos os documentos. Vou clicar em Criar pasta. E eu vou usar OpenGL ES 3 se você assistir isso no futuro e você estiver usando Gatto 4, isso funciona. Em vez disso, salvaremos Vulcano. Tudo bem, vá em frente e clique em criar e editar. Tudo bem, agora deixe-me ajustar isso para que você possa ver tudo na tela. Tudo bem. E temos nossa primeira configuração de projeto e pronto para começar a trabalhar nele. Mas o que vamos fazer, como eu disse da última vez, que eu vou mostrar como obter o modelo de exportação está indo. Então vamos para escrever em um peer to editor e descer para gerenciar modelos de exportação aqui no topo. Agora, se você baixou o arquivo, você não instalaria do arquivo e você localizará o arquivo que você baixou. E se você não baixou o arquivo quando ele queria fazê-lo de dentro do editor aqui. Você pode ir em frente e dizer download aqui, aperte isso. E então você terá este link URL aqui, este hiperlink e dizendo oficial, qualquer versão que você está em, HTTPS estável. Vamos em frente e clicar nisso e seu download começará. E uma vez que ele totalmente baixado, você terá os modelos. E então agora precisamos desses modelos e R2 realmente exportar um projeto. Então, se você quiser usar isso para praticar sua codificação e aprender um pouco, você pode fazer isso, mas se você quiser exportar seu resultado final, resultado no final, você certamente será capaz de fazer isso agora. Tudo bem, então temos nosso projeto pronto e ansioso para começar. Vou para o 2D. E eu vou mudar se ele acha que eu vou para as configurações do meu projeto. E aqui sob a guia Geral, eu vou rolar para baixo à esquerda até que eu encontrar a seção do Windows está sob a janela de exibição. E eu vou girar estes em torno da minha altura e largura. Então eu vou com 600 por 1024. E eu vou fechá-la. Certo, usarei uma visão de retrato para nosso primeiro projeto aqui e trabalharei com isso. E será isso para este vídeo. E vejo vocês na próxima, onde podemos começar a nos meter nas coisas. Começo a inventar os nossos jogos de objectos escondidos, trazê-lo para os nossos bens e começar o nosso código.
4. Camadas de cena: Muito bem, pessoal, neste vídeo vamos rever as nossas camadas e
configurar a nossa cena para que possamos começar a aprender os conceitos simples. E, você sabe, é uma espécie de bloquear o núcleo de um jogo de objetos escondidos. Então, para fazer isso, vamos precisar começar com uma cena 2D. Claro que sim. Nós vamos em frente e eu só vou mudar o nome disso de não 2D para principal. E você pode clicar com o botão direito do mouse e renomear ou clicar duas vezes nele para fazer isso. E para começar indo para ir em frente e salvar. Para que eu possa manter o mesmo. Mas de repente minha pasta de cenas para que eu possa manter tudo junto e organizado. Aperte Salvar. Tudo bem. Agora, se entrarmos em nossa pasta Texturas, vocês verão que teremos nossa imagem inicial, bem como algo que é esse piquenique de camada superior. E ambos serão o que nos permitirá esconder e mostrar nossos objetos ao redor. Então, se formos em frente e pegarmos nossa imagem completa aqui e colocá-la aqui. Algo assim. E nós vamos e você verá que agora temos uma imagem completa. Não sofre. Interessante, é meio que lá, mas tudo bem. Porque também temos outra imagem aqui, nosso piquenique de camada superior. Vamos em frente e arrastar isso também. E tente alinhar o melhor que puder. Se você quiser, você pode clicar
na primeira imagem e olhar para o lado direito e abrir transformar. E você poderia verificar esses números lá e você pode ir em frente e
copiá-los e colocá-los dentro da transformação de sua camada superior. Se você quiser obtê-los exatamente. E com isso, temos nossas duas camadas de nossa imagem. Então, como exemplo, eu vou seguir em frente e apenas arrastar este urso. E se eu colocasse esse urso e minha hierarquia entre eles, agora posso esconder esse urso atrás
do arbusto ou atrás desse arbusto ou por alguma razão aqui embaixo, atrás de nossos travesseiros. Então essa camada superior é o que vai nos permitir esconder nossos objetos em nossa cena. Agora, obviamente este urso precisaria ter seu próprio tema para isso. Porque precisamos de mais do que uma foto aqui. Então vou apagar isso, deletar o urso. Mas você pode ver o tipo de estrutura que estamos indo para com isso. Então eu vou acertar a vantagem no topo aqui para criar uma nova cena. Eu vou bater outro nó porque eu quero que este seja um sprite para o meu ano base. E vou mudar o nome para suportar. Vou trazer a textura para isso. E eu vou apertar o mais para cima no canto superior esquerdo para adicionar um nó filho, eu vou adicionar em uma área 2D. E com isso vamos adicionar uma folha de coalizão. Agora, a forma de colisão foi selecionada, e vamos olhar para o lado direito para o nosso inspetor. E para a forma, podemos apenas selecionar um novo retângulo. Agora, você pode ir em frente e apenas aumentar isso para caber. Nós não temos que ser nenhum pixel perfeito porque isso é praticamente vai ser mais como nossa área de cliques do que a área que vai afetar nosso mouse e dizer ao nosso jogo o que fazer. Eu vou continuar e salvar se você quiser saber o atalho e nós estamos apenas usando o Controle S. E nós vamos apenas deixar isso como uma cena de urso chamado, colocá-lo em nossa pasta de cenas e pressione Salvar. Agora você pode ir em frente e fazer isso para seus outros objetos também. Então eu vou criar outra cena. Vá para outro. Chupa o meu sprite. Vou dar um nome a esta câmara. Quero esconder uma câmera na minha cena. Vamos adicionar a área a D e nossa forma de colisão. Vou adicionar a textura da câmera ao meu sprite. Forma de colisão. Vamos adicionar o retângulo. E neste caso, o ângulo está um pouco fora, então você pode ir grande o suficiente assim para cobrir tudo. Ou se você quiser. Mas você poderia fazer é mudar para transformar e apenas ajustar sua rotação um pouco para tipo de ajuste um melhor. De qualquer maneira que você quer fazer é completamente com você. Vamos ver. Oh, você quer ir para o outro lado? Há 10 negativos. Parece que 10 negativo parece muito bom. Provavelmente perto o suficiente para isto. E nós vamos assim. Certifique-se de cobrir nossa câmera e salvar isso como nossa cena de câmera. E agora temos dois objetos e podemos começar a nos esconder em nosso jogo. Incrível. Então, em nossa cena principal, e vamos em frente com o principal. Um principal selecionado com o que se parece com este ícone de cadeia no topo. E o que isso faz é que nos permite adicionar em cenas que já criamos. Então, podemos ir em frente e adicionar em nossa nua clique principal novamente, e adicionar em nossa câmera. Você pode pegar os dois, colocar no meio de nossas duas camadas. E você pode começar a posicioná-los, posicionando-os onde quiser. Vou colocar o meu urso lá e vou colocar a minha câmara escondida aqui em baixo. Agora, minha câmera para esta escala parece realmente grande. Então eu vou apenas ir em frente e encolher. E como podem ver, temos isto como Transformação Livre. Mas se mantivermos o turno, podemos manter essa proporção. Então eu vou apenas ir em frente e encolher isso para baixo. Adiciona meio que levou isso atrás do pilar aqui. Tudo bem. Coisas de urso podem levantar isso um pouco lá em cima. Parece que é um urso grande. Então eu vou apenas ir em frente e encolher isso um pouco. Certo, agora temos um urso e uma câmera,
e temos eles escondidos dentro de nossa cena. Agora, você sabe, facilidade, coloque isso em qualquer lugar que você gostaria. Você sempre pode modificar esta camada superior, esta camada superior. E se você quiser criar outras peças que você quer esconder, você pode definitivamente fazer isso. E como verão, se eu esconder minha camada inferior, tudo o que fiz foi cortar pedaços
dessa imagem e usar isso em uma camada separada para esconder coisas por trás dela. E então nós apenas posicionamos assim para que pareça indistinguível como se fosse uma peça. Tudo bem, então temos tudo pronto. Espero que você tenha uma compreensão de como nosso sistema de camadas funciona em nossos objetos escondidos vieram aqui. E, em seguida, passaremos a configurar nossa área de inventário visível e começaremos a fazer nossos scripts.
5. Como alterar o Cursor: Muito bem, bem-vindos de volta a todos. Neste espelho, vamos ter a configuração do nosso mouse com o nosso cursor para estar mudando ao redor sempre que passar o mouse sobre um objeto. Porque se formos em frente e tocar no play ou agora, precisamos selecionar nossa cena principal. Podemos selecionar a cena principal. E quando estamos aqui, nada acontece, não
temos indicador. E se você quer que seu jogo seja assim e realmente
não tem nenhum indicador para ajudar seu usuário. Você poderia fazer isso. No entanto, eu recomendaria ter algum tipo de indicado não o que seu jogador não ficar muito perdido ou entediado com o que eles estão fazendo. Mas isso vai ser completamente até você e tipo de jogo que você deseja criá-lo. Obviamente, se você não mudar o mouse para jogos, vai ser um pouco mais difícil, especialmente se você não está dizendo a eles o que procurar especificamente. Então eu vou em frente e fechar isso. E só aqui embaixo, eu vou selecionar a pasta de scripts aqui. Vou clicar com o botão direito do mouse e vou criar um novo script. E eu vou chamar isso de global. E é aqui que vamos manter um monte de informações diferentes. Agora até dois projetos, configurações do
projeto, vamos para o carregamento automático. Nós apertamos este pequeno botão aqui ao lado do caminho direcionado para o nosso script global e apertamos Adicionar. Agora o que isso vai fazer é adicionar como um singleton. E isso significa que podemos acessar todos os dados aqui dentro de qualquer lugar do nosso jogo. Vamos continuar e salvar isso agora se clicarmos em nosso script aqui, e no lado esquerdo, podemos ver nosso script aqui se abre. E podemos começar. Então, o que vamos precisar agora é de duas variáveis, que vão ser nossa norma do mouse e nossa variável para clique do mouse. Então ele vai nos mostrar o que é clicável e o que não é. E podemos definir cada um deles para uma carga. Carregue
e vamos, e dentro desses parênteses, vamos arrastar o cursor do mouse. Então eu vou usar o cursor um para o meu normal. E vamos usar o cursor para para o nosso clicável. E você verá ambos os erros desaparecerem assim que os preencher. E por enquanto, é tudo o que precisaremos. Vou em frente e remover essa informação. É tudo o que precisamos. Eu posso ir em frente e apertar o controle S, salvar isso. E podemos começar a fazer um roteiro para nossos objetos. Então podemos fazer isso em qualquer lugar. Eu vou em frente e apenas ir direto para a minha cena do urso. E clique no meu urso e aperte este botão Adicionar Script anexado script novo ou existente. Na verdade, não vou nomear desespero. Eu vou nomear este objeto porque nós vamos ser capazes de usar este script em todos os nossos objetos, todos os nossos objetos colecionáveis para o nosso jogo. Certo, certifique-se de que isso não está na nossa pasta de scripts. Isto está nas cenas. Nós não queremos isso. Então, queremos abrir isso, voltar e selecionar scripts. Eles são reais. Então, queremos ler como dois pontos barra barra scripts barra objeto, fechar objetos. E tudo bem. Tudo bem, então o que precisamos aqui? Vamos ter de determinar se o nosso “Aqui vamos nós”. Vamos precisar determinar se nosso mouse entrou em uma área. Então vamos fazer var mouse Enter. E vamos definir isso como falso por padrão. Porque, por padrão, provavelmente não teremos nosso mouse dentro de uma área. Então nós basicamente não vamos ter nosso mouse em cima de um objeto para começar. E o que precisamos fazer é conectar dois sinais. E isso virá da nossa área 2D. Então, se você renomear sua área 2D aqui em sua nua, certifique-se de que é o mesmo nome em sua câmera e todos os seus outros objetos para isso. Então vamos para o cifrão e vamos pegar a área 2D. E nós vamos nos conectar. E aqui dentro podemos colocar o sinal que queremos nos conectar. E para nós é mouse entrou em todas as minúsculas. Nosso próximo argumento é o script que deseja anexá-lo a, que é self. Nós só queremos colocá-lo neste script aqui. E, em seguida, a última é a função que queremos chamar quando este sinal é emitido. Qual referência vai ser inserida com o mouse? Agora também queremos conectar um, outro sinal para o mouse saiu. E faremos o mesmo pela nossa função. rato saiu, assim mesmo. Agora, antes que
esqueçamos, devemos criar essas funções. Então, o que o mouse func entrou? Certifique-se de colocar parênteses de fechamento aberto no final, seguido de dois pontos. E na próxima linha vamos apenas digitar o passe. E nós vamos ter o nosso próximo criado também. Lá vamos nós. Agora nós, não esquecemos também, temos estes criados. E se você visse o que eu fiz lá, eu segui em frente e cliquei duas vezes no meu nome da função aqui. Dessa forma, eu posso simplesmente copiá-lo e colá-lo para
ter certeza de que eu tê-lo exatamente como eu digitei na primeira vez. Tudo bem, então quando nosso mouse entra, obviamente mouse enter deve ser verdadeiro porque agora nosso mouse está dentro da área. Então vamos em frente e definir o mouse enter como true. E isso significa que quando sairmos da área, temos que voltar a ser falsa. Então o mouse entra igual falso dentro do mouse saiu. Então, espero que você esteja acompanhando. É bastante simples de entender. Espero que quando nosso mouse entrar nesta área azul, ele diz ao nosso script para defini-lo verdadeiro para o macho-centrado, para deixar nosso nó de script que nosso mouse está dentro desta área durante todo esse tempo. E quando o tirarmos da área azul, será considerado falso. Meu urso, acho que vai apertar isso daqui a pouco. É um pouco grande demais para mim. Tudo bem. Então agora deve funcionar, o que é ótimo. E se quisermos, podemos entrar e imprimir duas declarações aqui. Dentro do centro de Mao vai dizer, e vamos apenas ir em frente e navegar cheiros preprint mouse entrou. E quando sairmos, vai imprimir mouse saiu. Tudo bem, vamos em frente e apertar o botão play e prestar atenção aqui em baixo no seu console de saída. E quando seu mouse entra com o urso agora centrado e quando saímos, mouse saiu. Então podemos ver que está funcionando. Nosso sinal está sendo enviado. E a razão pela qual não temos que emitir este sinal nós mesmos é porque a área entrou ou eu sinto muito, mouse entrou, uma saída do mouse. É um sinal padrão que está embutido no motor para a área 2D. Muito bem, então o nosso rato está a funcionar. Então o que precisamos fazer agora é nos preocupar com nosso mouse. Então vamos definir o nosso mouse por padrão esta cabeça para o projeto e ir para Configurações do Projeto. Vá para a guia geral. E podemos apenas procurar as configurações do mouse. Lá vamos nós. Sob exibição, temos cursor do mouse, imagem personalizada ac. Vá em frente e abra isso. Agora novamente detectores e selecione o cursor um. Então essa será a nossa imagem padrão ou mouse padrão agora quando abrirmos o jogo. Então, para mudar isso, quando o mouse é inserido e MSX precisa, vamos usar o conjunto de pontos de entrada, cursor do mouse
personalizado, I. Então dentro deste, nós vamos realmente dizer o que, o que queremos que seja. Então nós tínhamos isso realmente em nosso mouse ou em nosso, em nosso script global. Então, podemos apenas fazer um clique global do mouse. Agora, a razão pela qual podemos usar a palavra global aqui, se entrarmos em configurações do projeto de volta ao nosso carregamento automático é por causa do seu nome aqui. Se você quiser mudar isso para outra coisa e dizer que eu sou talvez GB ou amarelo ou qualquer outra coisa, você quer colocá-lo lá. Esse é o nome que você usaria para onde eu estou colocando global aqui. Então, por padrão, ele será o mesmo nome do seu script. Então evento global clique do mouse ponto, e isso vai chamar este cursor do mouse aqui que temos carregado. Eu não fiz. Da mesma forma, quando saímos e queremos colocar o mouse de volta ao jeito que era. Então input.txt, cursor do mouse personalizado. E vamos colocar a norma global do rato. Tudo bem, então isso deve funcionar. Vamos em frente e aperte o botão play. E este é o grande rato aqui. E lá vamos nós. E nós entramos, podemos ver claramente que agora é clicável. E obviamente não vai funcionar em uma câmera porque o script não está em nossa câmera e agora é apenas em nosso urso com uma fileira. Agora temos um mouse que muda e se ajusta. Agora, se você quiser mudar a escala deste mouse e você pode facilmente fazer isso. Você só tem que entrar em nossa imagem e redimensioná-la. Mas é mais fácil, e isso não é problema. Fácil de fazer. Bem, eu faço isso. Eu poderia redimensionar meu rato um pouco aqui para isso, mas é isso. Você sabe, uh, agora você sabe como mudar seu mouse baseado em quando ele entra e sai. E nós estaremos usando nossa variável mouse enter aqui para mais tarde quando ele vem realmente clicando em objetos. Mas com isso, agora temos um pouco de script. E aqui temos nossa configuração global. Bem, por enquanto. E agora podemos ir para a nossa câmera, para o nosso objeto de câmera aqui em nossa cena. E podemos ir em frente e adicionar um script e você pode clicar no Plus e navegar para os objetos, ou podemos simplesmente pegar objetos dot td aqui e arrastá-lo para a nossa câmera. E agora, quando abrirmos, também funcionará em nossa câmera. Então vemos que funciona em nossa nua e funcionará em nossa câmera. Tudo bem, então agora sabemos, agora temos nossa configuração de cursor personalizada com nossos objetos.
6. Como coletar objetos: Muito bem, pessoal, neste inverno vamos fazer nossos objetos realmente clicáveis. E nós vamos adicioná-los a um contido um conjunto de dados que eu coletei itens. Então, se formos em frente e apertarmos Play, você verá que eu mudei meu cursor do mouse, eu o ajustei então agora é mais gerenciável. É metade do tamanho que era e é muito mais normal. E vemos que funciona, ainda funciona bem para ambos os objetos. Tudo bem, então para fazer isso, nós vamos ter que entrar em nosso script de dados aqui, ou desculpe, em nosso script global. E nós vamos adicionar uma nova variável chamada livros de dados. Dados. E vamos definir isso igual a ser um dicionário. Agora, um dicionário é um conjunto de dados que podem conter diferentes tipos de dados dentro dele. Então um dicionário pode ter uma lista nele. Ele poderia ter uma string, como você vê aqui, que é itens entre aspas. Ele pode conter números, ele pode até mesmo conter outros dicionários dentro dele. Uma maneira fácil de dizer um dicionário de uma lista é um dicionário tem os colchetes ondulados, enquanto uma lista, nós temos esses quadrados. Então vamos em frente e vamos fazer uma string aqui e vamos
chamar isso de objetos coletados. E vai definir isso igual a um par de colchetes. Oh, meu erro. Depois de nossos objetos coletados, temos que colocar um cólon aqui antes dos iguais. E nós realmente não temos os iguais lá. Meu erro, eu estava pensando em variáveis de novo. Então, e assim temos dados para variável é igual aos nossos colchetes ondulados. E dentro disso temos um par de aspas que têm a palavra coletada objetos entre eles, seguido de dois pontos,
e então um par de colchetes . Tudo bem, Então objetos coletados aqui vai ser uma lista como indicado por colchetes r, o que é ótimo. E é isso que vamos manter o nosso, manter o controle de nossos objetos dentro Podemos ir em frente e salvar
isso, assim podemos acessar mais facilmente. E dentro do nosso script de objetos, podemos descer e criar uma nova função. E isso é chamado de sublinhado de entrada não tratada. Como você pode ver lá, ele vai aparecer e tem evento como sendo passado para ele. Agora, não precisamos usar as aberturas do mar, então aparecerá com um erro dizendo que o evento não está sendo usado. Não faz mal a nada deixá-la lá. Mas algumas pessoas ficam um pouco irritadas que ele aparece mesmo com Delta na função de processo. Se você não quer que isso apareça, você pode simplesmente colocar um sublinhado no início e ele não aparecerá mais. Certo, no próximo slide, precisamos verificar se o botão esquerdo do mouse está sendo pressionado. E vamos verificar se nosso mouse está realmente inserido nessa área. E se assim for, então vamos executar o nosso verdadeiro vai fazer o que precisamos fazer sempre que clicamos em um objeto. Então vamos em frente e verificar se o ponto de entrada é ação. Apenas pressionado. Agora nós não temos uma ação aqui, mas para o momento nós podemos apenas deixar isso aberto e nós estamos dizendo e mouse digitar dois sinais de igual porque nós queremos fazer uma comparação é igual a true. Ponha um cólon na ponta. Agora, a próxima linha seria apenas passar. Agora você verá um erro aparece na tela dizendo muito poucos argumentos para sua ação, basta pressionar. E podemos resolver isso criando uma ação com o botão esquerdo do mouse. Então vamos para projetos, vá para a guia mapa de entrada para ação. Vamos criar um chamado clique esquerdo e pressione Adicionar. E você verá na parte inferior da tela, teremos clique com o botão esquerdo do mouse e pressione o botão de adição à direita, selecione o botão do mouse. E botão esquerdo é o que queremos selecionar um anúncio. E agora, para um argumento dentro de suas ações apenas pressionado, podemos ir em frente e fazer um par de aspas e você verá o botão esquerdo do mouse pop-up. Vá em frente e selecione isso. E isso vai se livrar dos erros que tivemos. Então o que vamos fazer é
adicionar isso em nossas listas coletadas dentro de nosso script global, os dados
que acabamos de criar. Então, para fazer isso, temos que acessá-lo. Então usamos ponto global e o nome da nossa variável, que é dados. E então o que vamos fazer é abrir um par de colchetes. E dentro disso nós digitamos o que estamos procurando, que vai ser objetos coletados. Esse é o próximo nível abaixo. Objetos coletados, certifique-se de soletrar corretamente, e estes seriam exatamente os mesmos. E já que isso é uma lista, podemos apenas fazer ponto, acrescentar e abrir, fechar parênteses dentro disso. Dentro desses parênteses é realmente o que queremos adicionar. Então append, o que isso faz é append irá adicionar um objeto entre entre esses colchetes em nosso conjunto de dados. E ele sempre irá adicionar novo item no final de cada vez. Isso é o que um Pandas acrescenta um novo item. Então, o que queremos adicionar é nome de auto-ponto. Então, neste caso, isso vai ficar urso porque nosso sprite que o roteiro é honesto não pode suportar para uma câmera. Vai conseguir uma câmera para se você tivesse óculos. Vai pegar óculos, certo? Então, seja qual for o nome do objeto, isso é o que ele vai pegar e isso é o que nós vamos adicionar a ele. Agora, para ter certeza de que nosso urso é sempre tem um capital no início, porque parece bom, muito mais agradável quando estamos olhando para um conjunto de dados. Nós vamos chamar também chamado de ponto. Capitalize, abra, feche parênteses. E é isso que fará do primeiro personagem do nosso nome uma maiúscula. E é apenas mais agradável olhar e certificar-se de que nós fazemos isso mesmo se nós não colocá-lo em nosso nome sprite. Então, é quase como um sistema de segurança, caso tenhamos esquecido. E, claro, uma vez que o colecionamos, nossos objetos devem, ter desaparecido. Deve ter desaparecido, certo? Então podemos ir em frente e fazer esse rato, ou não vamos nos definir. Mas nós estamos realmente chamar nossa função de saída do mouse porque ele ainda é uma função, nós podemos realmente ainda chamá-lo normalmente. E não temos que esperar que um sinal seja assinado, podemos chamá-lo. E então podemos fazer auto dot Q livre. E isso se apagará,
fazendo com que desapareça da nossa cena. Agora, para ter certeza de que isso funciona, antes de Q, usando Q3, nós realmente ir em frente e apenas imprimir. E para um argumento para o que vamos imprimir serão nossos dados globais. E é claro que isso vai ser nossos objetos coletados amadurecer. Você soletrará corretamente e terá sua capitalização de capital correta. E novamente, isso deve funcionar para um fio nu para uma câmera porque estamos mantendo isso o mais aberto possível. Então agora podemos passar o mouse sobre o nosso nu, nosso cursor do mouse muda, clique nele. E vemos em nosso urso console foi impresso, ele desaparece e nosso cursor voltou ao normal. E agora, se formos para nossa câmera, vemos que muda aqui. E se clicarmos nele, veremos a câmera adicionada à nossa lista. E quando imprimir, devemos ver uma câmera vírgula nua. Mais uma vez com a primeira letra sendo maiúscula, que viu alguns. Está funcionando. Agora temos o básico do nosso pequeno esquema de objetos escondidos aqui acontecendo. Agora o que seria bom é se tivéssemos um inventário para um jogo que pudéssemos ver, porque
talvez, talvez nós vamos encontrar algo que possamos usar mais tarde, como uma chave ou outro objeto para talvez resolver um quebra-cabeça ou algo assim, Certo? Talvez devêssemos encontrar um objeto e, em seguida, voltar para outra seção em nosso mapa e usar esse objeto para avançar. Então vamos dar uma olhada em adicionar em nosso item e pouco inventário, certo? Que podemos ver, bem como adicionar nosso objeto para baixo e para ele sempre que o coletamos. Tudo bem, então você pode ir em frente e você quer executar isso de novo? Você pode ver que tudo ainda funciona. Urso de câmera. Câmera de urso. Não importa em que ordem coletamos. E tudo funciona. Tudo bem. Vejo vocês na próxima. Vamos criar o nosso pequeno inventário.
7. Inventário visual: Tudo bem, bem-vindos a todos. Vamos em frente e criar nosso pequeno conjunto de inventário. Quando coletamos um item, podemos adicionar o nome do item, bem como uma imagem do item para que
saibamos o que é visualmente e prontamente, prontamente quando o lemos. Então nós vamos clicar em Principal em nossa cena, bater mais, e nós vamos obter o que é chamado de listas de itens. E podemos mover isso. Você pode colocar no lado igual a 0 na parte superior, onde quiser. Vou colocar o meu na parte inferior da tela. Parece um tamanho bonito e eu vou puxá-lo. Agora podemos sempre ajustar isso mais tarde. Eu vou definir isso à mente para 10 colunas, porque isso é sobre o que eu deveria ser capaz de passar por todo o caminho teria um leve aqui, obviamente, se você tem o seu indo ao longo do lado, vai ser um pouco diferente, realmente só vai ter uma coluna ou talvez duas dependendo de quão grande seus ícones e não r. Então vamos em frente e agora clique no ícone, e vamos dizer Modo Ícone para cima. Se você quiser definir seu Select, você pode. Vai ser um layout completamente diferente. O que isso vai fazer é ter top. Vai ter a nossa imagem no topo e, em seguida, nosso texto por baixo não tem à esquerda. E nós vamos ter, eu acredito que nossa imagem à esquerda e, em seguida, o nosso texto à direita dela. Então cabe a você como você quer fazer isso. Eu vou ajustar minha escala para eu acho 32 ou provavelmente ser bom. Podemos ver se queremos mudar isso. E depois de começarmos a adicionar itens e fazê-lo. Se você quiser alterar o nome da sua lista de itens para algo como inventário ou itens coletados ou algo assim. Você pode definitivamente fazer isso. Vou deixar o meu como lista de itens porque esse nome me diz exatamente o que é. É uma lista dos meus itens. Tudo bem, então, por enquanto, podemos ir direto para o nosso objeto. Itens. Aqui estão o nosso script de objetos. Tudo bem, e tudo o que precisamos fazer aqui é descer, descer aqui e nossa entrada sem controle. E quando o adicionamos, este objeto aos nossos dados, podemos ir em frente e você pode fazê-lo antes de fazê-lo, depois que ele realmente não importa, desde que você faça antes de Q free. E nós vamos ter um pai. Então, se olharmos para a nossa principal lá por um tempo a partir do nosso urso ou câmeras ligadas, nós vamos ter um pai que vai nos levar até o nosso principal. E o nosso principal tem acesso a todas estas notas aqui. Então, somos do Maine, vamos pegar o Node e o
que queremos obter como lista de itens ou o que quer que você deu em frente e nomeou o seu. Então, bom ponto pai, obter nó, abrir, fechar parênteses. E dentro do nosso argumento aqui, vamos em frente e obter a lista de itens. E agora o que queremos fazer com isso é que queremos adicionar item, adicionar item sublinhado. E o primeiro argumento que colocaremos aqui será o texto. Então nós vamos fazer auto-nome. E como queremos garantir que tudo fique bem e fique ótimo, faremos capitalização,
assim como fizemos quando adicionamos itens aos nossos dados. Podemos fazer uma vírgula e o próximo item que você vê se isso aparece é o ícone. Então queremos a textura aqui. E para isso podemos apenas fazer auto-dot textura. Então vamos obter a textura do objeto. Então vamos obter a textura que estamos usando para o urso vai ter a imagem que estamos usando para a câmera, e isso é o que vamos usar. Tudo bem, então se formos em frente e
executarmos isso, devemos ver agora. Adicione na nossa lista aqui embaixo. Vamos ver se é grande. E, além dele, um tornaria maior. Queremos torná-lo menor. Então eu vou clicar na câmera. E é assim que é grande. Então eu posso ver que eu posso encolher meu bar para baixo e torná-lo um pouco menor para o tamanho que eu escolhi aqui. E se eu selecionar meu urso, lá está ele. Eu meio que gosto desse tamanho. Você pode querer o seu maior, você pode querer um menor. Novamente, isso vai ser completamente com você. Agora, se você tivesse isso na vertical, eu posso ver duas colunas sendo muito boas aqui do lado. Então algo que eu vou fazer aqui é que eu estou realmente indo para tomar meu Git pai dot getName, lista de itens aqui. E sob o pronto. Só por agora, vou em frente e colar o pecado várias vezes. Você pode estar pensando que isso é loucura. O que você está fazendo? Bem, eu vou em frente e apenas tocar no play. E isso só vai somar todos esses itens. E isso vai me ajudar a ver o, que tipo de propagação eu tenho acontecendo, certo? Para o item, então eu tenho 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Então eu posso ver 10 itens só me leva até aqui. Eu tenho espaço para mais quando eu tenho as câmeras e eu fui, eu só tenho barreiras. Eu tenho 12345678910 e tenho todo esse espaço extra aqui. Com câmeras. Temos 1, 2, 3, 4,
5, 6, 7, 8, 9, 10. Podemos colocar dez câmeras,
mas não podemos caber 10 ursos. Então precisamos realmente mudar isso. Então eu vou mudar o meu para 14 e isso deve ser bom o suficiente para fazer tudo atravessar. Então agora eu posso remover, na verdade eu, eu vou ficar com tudo isso por enquanto. Clique na lista de itens e eu vou definir minhas colunas de correspondência 214. E agora, quando eu acerto no jogo, são ursos não vai atravessar todo o caminho. Por que está parando às 10? Interessante. Coloca a mesma largura da coluna. Lá vamos nós. Isso parece muito mais agradável. Então, mesmo trabalhando com 10 aqui, acho que não vai espremer nenhum zoológico extra. Isso parece muito mais agradável. E eu posso ver o que eu sou aqui em cima. Eu ainda tenho espaço, então eu vou ir em frente e apertar isso com meu jogo ainda aberto. E você pode simplesmente tocar de volta para ele. Eu só vou ir em frente e reexecutá-lo. Só vou mover isso para o lado para que eu possa ver isso enquanto eu abaixo isso. Eu quero ir com ele. Sim, eu vou com este tamanho para o meu. E eu posso ver minha própria pré-estreia aqui. E nós temos a pequena roda aqui para que possamos rolar se precisarmos, dependendo de quantos objetos você tem em seu jogo ao mesmo tempo. Certo, antes que esqueçamos, vamos voltar ao nosso script de objetos e remover tudo isso. Agora, não estamos adicionando automaticamente esses itens. E podemos executá-lo só para ter certeza. E você sempre quer ter certeza de que você não está quebrando nada em algum lugar. Vá em frente e adicione nosso urso e nossa câmera, e tudo está funcionando ainda. Isso é incrível. Isso significa que não quebramos nada. Agora eu tenho um pequeno bar aqui ao lado. Eu realmente não gosto disso, então eu vou fazer minha lista aqui um pouquinho maior, só para me livrar disso. E lá vamos nós. Você vê agora que ele se foi. Porque eu não quero ver isso a menos que eu tenha mais de uma linha. Caso contrário, é um pouco estranho e fornece informações falsas para o seu jogador. Com um verdadeiro. Agora, quando clicamos em um item, ele também irá adicioná-lo ao nosso inventário visualmente e no backend em nossa lista de dados. Certo, então a seguir vamos dar uma olhada, vamos dar uma olhada em salvar nossos dados. Assim, quando carregarmos o jogo, podemos realmente manter os objetos que tínhamos, certo? Porque você não quer terminar o jogo e depois carregá-lo de volta. E depois perdeste todo o teu progresso, certo? Talvez estejas a fazer uma taxa de jogo mais longa. Agora, se você não salvar, então é um pouco melhor para jogos mais curtos. Mas é sempre bom ter essa opção de salvamento lá dentro.
8. Como salvar e carregar dados: Tudo bem, se vamos passar por cima de salvar e carregar nossos dados em nossa cena. Então a primeira coisa que vou fazer é ir para o projeto. Tenho uma configuração de projeto. E sob config e nossa guia Geral em aplicativo, eu vou ir em frente e ativar o uso de diretório de usuário personalizado. Agora o que isso vai fazer é dentro do diretório de usuário, todos os sistemas operacionais têm um. Se você não tem certeza de onde ele está, você pode tentar deslizar para baixo as notas do diretório do GoTalk mostrar-lhe a localização do seu sistema operacional específico. Para Windows, ele está no AppData. Para Mac e Linux. Não tenho 100% de certeza do topo da minha cabeça. Mas vamos ligar isso. E com isso, ele vai criar uma pasta chamada objetos escondidos jogo de quebra-cabeça, escrever o nome do nosso projeto. Se você tem o muitas vezes você tem que passar por uma pasta chamada Good Til e, em seguida, você tem que ir para outra pasta com isso e, em seguida, você pode encontrar o seu projeto. Então eu gosto de usar o diretório personalizado. Parece um pouco mais profissional para ele ter sua própria área, a casa ou seus dados. Então vamos entrar no roteiro e vamos entrar em nosso roteiro global. E vamos precisar de duas funções. Vamos precisar de 14 dados salvos. E nós vamos e um para carregar nossos dados. Opa, lá vamos nós. Então vamos começar com salvar dados. Para fazer isso, vamos criar, precisamos de uma nova variável. Vamos chamar-lhe F. e isto vai ser para o Ficheiro Novo. Agora isso é um arquivo com um F maiúsculo com um parênteses de fechamento aberto no final do novo. E vamos abrir o ponto F porque queremos abrir um arquivo, certo? Precisamos abrir algo para ler ou escrever para ele. Queríamos direcionar. E nós vamos fazer o usuário dois-pontos barra, barra, certo? E nós vamos apenas chamar o nosso ponto de dados de informação DAT. Tudo bem? E então faremos uma vírgula e precisamos de outra discussão aqui. E como você pode ver, mas ela precisa saber se estamos apenas lendo de um arquivo ou se vamos ser capazes de escrever para ele e modificá-lo. Agora, estamos salvando nossos projetos. Então, obviamente, queremos escrever para o nosso arquivo, certo? Porque queremos escrever novas informações para ele. Então podemos fazer ponto F,
certo, e direito está em todas as maiúsculas. No próximo slide, podemos fazer a economia real, que vai ser armazenar nossos dados para fazer linha de loja ponto F. E então dentro dos parênteses aqui, nós estamos realmente desfazer para sublinhar e Jason e abrir, fechar parênteses e dentro destes
vão colocar dados. Vou colocar os nossos dados. E então, sempre que você terminar com um arquivo, se você está salvando ou carregando, lendo dele, não importa. Sempre feche no final. Então f ponto fechar, abrir, fechar parênteses. Agora, para o bem disso, eu vou também fazer OS dot shell open. E depois OS dot. Se eu apenas digitar usuário e você sentar lá, obter diretório de dados do usuário. Agora, se isso não funcionar para você, então novamente, você pode ir em frente e verificar on-line a documentação para ver exatamente onde ela está para você. O que isso deve fazer é abrir seu diretório de dados em seu sistema operacional. E isso nos permitirá chegar rapidamente a ele para que possamos ver. De que adianta ligar se não temos nada a dizer, certo? Então vamos em frente e salvar isso e passar para o nosso script de objetos. E quando nós Q3 estamos antes de deixar para mim, vamos em frente e chamar dados globais de salvamento de pontos. Agora, podemos salvá-lo sempre que pegarmos um item ou coletarmos um. Então vamos em frente e correr isso e vamos pegar o urso. E você vê, deve abrir para você bem ali. E vá em frente. Você pode ver ponto de dados DAT foi criado lá. E se clicar duas vezes nisso, você pode simplesmente abri-lo com o Bloco de Notas. Você verá nosso objeto. Temos objetos coletados e temos nosso urso lá dentro. E eu, quando adicionarmos nossa câmera e clicarmos nisso, podemos clicar duas vezes e abri-la novamente. E veremos que agora temos o nosso urso e a nossa câmara. Assim, vemos que as nossas informações estão agora a ser guardadas e armazenadas no nosso computador. No entanto, não estamos realmente carregando e verificando nossa cena ou qualquer coisa para esses objetos. Então, mesmo se abrirmos um backup agora, mesmo sendo dados NR, ainda
podemos ver nossa câmera e nosso quarto pode continuar coletando uma e outra vez. Então precisamos agora escrever nossa seção de carga. Então vamos para a Global. E sabemos que isso funciona. Então não precisamos mais abrir isso. Cabe a você se quiser deixar isso aí, mas vai ficar um pouco irritante várias vezes. Então vamos começar do mesmo jeito. Precisamos de um arquivo, alguns dos nossos f são iguais a Arquivo, Novo. Nós vamos abrir o mesmo diretório, User dois-pontos barra barra dados ponto DAT. Oh, antes de fazermos isso, então eu estou realmente indo apenas para tocar Tab sobre isso. E acima disso, vamos verificar se o arquivo já existe. Agora, se isso acontecer, então vamos carregar nossos dados. Então, o que fazer se o arquivo app.py existir? E então vamos passar em uma corda. Então o nosso caminho que apenas usar seus dois-pontos barra barra de dados DAT ponto, e dois pontos no final do que porque é uma instrução if. Então, vamos dizer se um arquivo existe, f dot abrir nossos dados. E então precisamos ler a partir dele porque queremos carregar a informação para que queremos ver o que está nela. Não queremos escrever para ele. Só queremos dar uma olhada nisso. E então vamos definir dados. Então nosso argumento no topo são variáveis. E nós dissemos que igual a analisar e Jason. E o que o ponto F recebe como texto? E então, como eu disse antes, sempre que terminamos com ele, você sempre fecha seu arquivo. Tudo bem, vamos agora e estão prontos função podemos chamar uma carga de dados. E depois de carregá-lo, podemos ir em frente e imprimir dados. E se você quiser verificar isso, certifique-se de que ele está carregando e tudo mais, nós queremos ter uma comparação. Vá em frente e imprima antes e depois de carregar. Então, agora, se apertarmos Play e dar uma olhada em nosso console de saída, vemos objetos coletados está vazio e agora ele está nu e câmera. Então nossos dados estão sendo carregados em nossa variável, o que é bonito. É ótimo, é exatamente o que queremos. Agora o problema
é que ainda temos nossos objetos em nossa cena quando nossos dados são carregados. Então precisamos consertar isso, certo? Precisamos mudar isso. Então, no próximo vídeo, vamos remover nossos objetos de nossa cena. E talvez nós vamos dar uma olhada em adicioná-lo em nossa barra de itens também. Uma vez que nossos dados foram carregados.
9. Como carregar dados para inventário: Muito bem pessoal, vamos começar com o carregamento, sendo capazes de carregar nossos objetos dessa forma. Porque você vê quando nós apertamos Play, uma vez que nós os colecionamos, vai realmente mantê-los aqui em vez de bater play. E podemos continuar constantemente abrindo uma e outra vez. E vejo que eles adicionam constantemente à nossa lista. Então o que eu vou fazer é antes de começarmos aqui, é eu realmente vou abrir isso para que eu possa excluir meus dados novamente, porque eu tenho muitas coisas lá dentro. Então ponto OS obter diretório de dados do usuário, e eu vou apenas apertar Jogar para que eu possa rapidamente obter isso e excluir. Tudo bem. E eu removo isso. Tudo bem, agora estamos prontos para ir. Então você quer vir para o seu script global porque nós não podemos realmente obter r quando os dados estão dentro de nossa pasta rotas aqui. Uma vez que
exportamos o jogo, não podemos mais usar essas imagens. Só não temos permissão para acessá-los. Então o que vamos fazer é pegar os objetos que temos e
vamos salvá-los externamente para que possamos acessá-los mais tarde. Então eu vou criar uma nova variável. Vou chamar esses GameObjects. E isto vai ser apenas uma lista. Então, quando array, então eu vou para ir em frente e lista lá. Vou adicionar câmera. E então enquanto eu estiver aqui, eu também vou continuar e acrescentar que nós só temos que fazer isso para nossos objetos colecionáveis, certo? Assim como o nosso cursor, não precisamos fazer isso. Nossas camadas, não precisamos fazer isso. Nossa chave. Deveríamos fazer isso e
apenas, caso nosso jogador dissesse “pare” antes de usar nossa chave. Então vamos em frente e adicionar a chave do porão em suas fechaduras. Não precisamos porque isso será mostrado durante o jogo. Então não devemos precisar disso. E isso, por enquanto, parece tudo o que precisamos. Então vamos em frente e criar uma nova função aqui embaixo. E eu vou chamar essa cópia de objetos. E o que vamos fazer é precisamos de um directório. Agora, se você passou pelo Explorador de Arquivos ou Finder no Mac, acho que é assim que você vai passar por arquivos. E cada um desses arquivos é chamado de diretório. Então precisamos criar um novo. Então var é igual a diretório dot nu. E agora vamos ver se está tudo bem abrir. Então, se não tivermos nenhum erro, certo? Então, depois de ponto aberto e o diretório quer abrir um cisto, nosso diretório de usuário. E se isso é livros, e nós não queremos o interior, eles querem o exterior dos parênteses. Então, vou verificar se está tudo bem. Então, se não há erros acessando esta pasta, então o que vamos fazer é fazer dir dot fazer lá. Então vamos criar um novo diretório. Então eu vou criar uma pasta. Assim, tudo não fica bagunçado e podemos manter as coisas limpas. E nós vamos apenas digitar o usuário ou diretório de usuário aqui. E então nós vamos adicionar em objetos. Então, seja qual for o nome da sua pasta, vou chamar meus objetos. Agora eu quero fazer para OBJ em nossa variável top GameObjects. Então, para cada item que está em nossa lista, vamos fazer isso. Agora. Onde eu digo para OBJ e GameObjects, que OBJ pode ser qualquer coisa que você quer para eu 44 coisas onde as coisas, o que você quer colocar lá. É só uma palavra de lugar que não significa nada. É apenas um substituto para qualquer item que temos que está sendo percorrido atualmente. Então, qualquer coisa que fizermos com o OBJ que estamos usando lá vai se correlacionar com cada objeto em nossa lista. Então, para OBJ e nós vamos fazer, fazer uma cópia, assim Dor ponto cópia. E a forma como a cópia funciona é escolher um local inicial e o ponto final que deseja salvá-lo. Então, por aqui nós levantamos o cólon barra barra, porque está em nossos vermelhos, certo? E, em seguida, para nós é dentro texturas, pasta Texturas. E então nós podemos realmente apenas fazer por cento S dot PNG. Agora o percentual S é, na verdade, um espaço reservado. E o que é um lugar detentor é o que declaramos por fora,
então nós apenas fazemos por cento e, em seguida, o que quer que coloquemos depois disso é o vai preencher esse percentual S. Então nós fazemos por cento ponto OBJ. E agora seja qual for o objeto, porque ele vai tomar esse lugar. Então, se olharmos para o topo, temos a chave do porão da câmera do urso. Então vamos substituir esse número. Então nós vamos ter texturas barra urso ponto PNG, texturas barra câmera ponto PNG texturas barra porão qi dot PNG, certo? Então vamos fazer isso constantemente. Então nós vamos olhar através da nossa lista e copiar todos aqueles um por um. Nós vamos vírgula. Agora é para aqui que queremos copiá-lo. O que vai ser o nosso diretório de usuários. E então vamos ficar dentro da pasta. Acabamos de criar nossa pasta de objetos. E depois vamos fazer outra barra. E novamente por cento S ponto PNG. E como antes, vamos preencher isso com nosso OBJ ou objeto. Agora, se fôssemos executar isto e abri-lo. Então, pronto, antes mesmo de carregar nossos dados, vamos em frente e copiar objetos. E eu vou em frente e abrir meu diretório. Assim que terminar o carregamento, então vamos tocar no Play. E agora você deve ver a pasta de um objeto que foi criada. E se você entrar nisso, você verá todos os seus objetos dessa lista. E isso é ótimo. Então agora que eles estão fora do nosso jogo e estão em algum lugar seguro como ou usando um diretório, nós podemos realmente acessar isso. E agora podemos usar isso, essas imagens para aplicar aos objetos que queremos adicionar ao nosso inventário quando carregamos. E então quando temos isso, podemos então usar são objetos coletados. Dados aqui em cima que carregamos para começar a escanear nossa cena para remover objetos. E, e temos realmente apenas ter um estado de salvamento e carga completo trabalhando nisso. Agora, se você não quiser que seus dados aqui salvem toda vez que você pegar um objeto, então você pode simplesmente remover a linha aqui. Mas lembre-se de criar um botão de salvar ou qualquer outra coisa, dessa forma o seu jogo faz. Salvar em algum momento. Para mim, vou deixar assim que salva depois de cada vez que escolhemos um item. Agora nós, nós nunca perdemos o progresso como o jogador. Certo, agora que temos isso, podemos nos concentrar em carregar nosso objeto na nossa lista de itens, certo? Então vamos para a nossa cena principal aqui. E nós estamos realmente indo para criar um script para o nosso principal. Então vamos adicionar um novo script e maduro vai para a pasta scripts. E eu vou em frente e deixar o meu como principal para o nome. Certo, então vamos precisar de algumas variáveis aqui. Vamos ver de quais vamos precisar? Vamos precisar ver, você tem um principal aqui. Não precisamos de nada lá. Sim. Tudo bem, então nós vamos precisar para criar um chamado eu vou definir que igual a 0 por padrão. E precisamos de mensagens sim. Para também criar uma variável chamada texto. E este vai ser um lugar para texturas. Certo, então a primeira coisa que vamos precisar, e podemos nos livrar da função de processo aqui. Na verdade, vamos criar uma função que criará as texturas desses objetos, ou desculpe, das imagens que copiamos para o nosso novo diretório. Então vamos em frente faria func criar textura. E passaremos um nome de objeto. Então, o que isso, isso vai pegar o nome do nosso objeto que
passamos e então vamos obter a imagem para
ele e, em seguida, criar uma textura a partir dele que podemos então usar para inventário para carregar isso. Então, começar criará um var para IMG. Esta será a nossa imagem. E isso será igual a imagem dot nu para uma nova imagem e fazer IMG dot load. E isso tomará um caminho, uma corda. Então isso e vamos passar em nosso usuário. E então nossa pasta de objetos que criamos. E, em seguida, por cento S dot PNG. E, claro, vamos passar esse OBJ para o nosso espaço reservado. Podemos então ir para Texto para obter a nossa textura. E vamos definir isso igual a uma textura de imagem. E nós fazemos texto ponto criar textura. Ou eu sinto muito. Não queremos criar,
queremos criar a partir da imagem. E passaremos em nosso IMG a imagem que carregamos. Então, com isso, vamos levar isso. Então, novamente, vamos passar, e por exemplo, se estamos procurando o urso, e se passarmos o objeto urso em nossa função de criação de textura aqui, vamos carregar a imagem do urso e, em seguida converter essa imagem em um textura que podemos usar. Tudo bem, então, além de criar uma textura, agora
vamos obviamente precisar ser capazes de atribuí-la, certo? Então vamos adicionar o nosso coletado à nossa lista. Então funk, adicionar coletados à lista. Você sempre quer ter sua função nomeada adequadamente. Assim você pode apenas olhar para o nome e saber o que ele faz. Tudo bem, então vamos continuar com isso. Então vamos dizer enquanto eu é menor que, então lembre-se que eu no topo, então é atualmente 0, menos que dados de dúvida global. E nós vamos fazer para nossos objetos coletados. Aqui vamos nós. E vamos ter o tamanho disso. Então essas são as taxas que você não nos diz como quantos itens estão nele. Então, se você tiver um item e eu for 0, vamos carregar nosso primeiro item, certo? Porque é menos do que isso. Então, se for esse o caso, então vamos chamar criar textura. E nós vamos passar em dados globais, certo? São objetos coletados, objetos coletados. E então fazemos outro par de colchetes e passamos i. Então vamos passar esse número para esse índice. E se dermos uma olhada, então objetos coletados eu sendo 0 vai nos dar o primeiro objeto. E então um nos dará o segundo, dois para o terceiro, três para o quarto, e assim por
diante até percorrermos todos os nossos objetos, certo? E então podemos fazer para obter nó. E o nó que queremos obter, claro que ele é a nossa lista de itens, certo? E vamos fazer ponto adicionar item. E passaremos em global. Dados são objetos coletados passarão por um olho, e é claro que vamos capitalizar isso. E então para a imagem que é passada em textos, que já está segurando nossa nova imagem. Graças à nossa função anterior que usamos para criar a textura. E para evitar um loop, podemos fazer I mais igual a 1. Certo, enquanto fazemos isso, há uma segunda maneira de fazermos isso. Então eu posso mostrar a vocês que esta é uma maneira de fazê-lo usando um loop while. Agora, se pudéssemos abrir isso e dar uma olhada, você vê nossos objetos, carregar nossa câmera e nossa nua, perfeitamente bem. Portanto, essa é uma forma de conseguir isso. Agora, vou mostrar-vos outra forma de fazerem isto. E vai ser meio que até você de que maneira você quer fazer isso, bem como mostrar-lhe dois métodos alternativos para fazer a mesma coisa. Então, para isso, podemos dar uma olhada e dar uma olhada em fazer um loop for. Então para i dentro de nosso GameObjects. Então, se você se lembra, dentro de nosso script global, usamos um loop for. Para mim, lá vamos nós. Isto irá percorrer todos os nossos objetos desta forma em vez usar uma variável para I com um número, certo? Porque estamos associando um número a isso. Então, para isso, podemos chamá-lo de 4, 4, 0, apenas para manter isso um pouco diferente, um pouco menos confuso. Então digamos para o ou OBJ como fizemos em nossos objetos no global. Então isso será um pouco mais familiar. Então, vamos dizer para o objeto aqui, o que queremos fazer? Queremos criar um objeto, criar uma textura. Só que não precisamos dessa corda longa. Só precisamos passar no OBJ. E, em seguida, mesmo com o nosso nó get na seguinte linha. Nós podemos remover isso e apenas colocar OBJ capitalizado e novamente passar em nossa textura. Então, se eu fosse comentar isso, então eu vou apenas destacar tudo isso e apertar Control K. Isso vai fazer com que o código não seja executado. Então, agora estamos executando nosso for-loop. E se eu apertar Play, você vê que ele carrega e nós temos os dois itens aqui com suas fotos e tudo mais. Então isso são apenas duas maneiras de você fazer a mesma operação aqui. Então eu pensei que queria aproveitar esta seção aqui para
mostrar duas maneiras diferentes de alcançar a mesma coisa em programação e codificação. Aqui, é tudo sobre resolução de problemas e encontrar uma maneira de resolver o seu problema, certo? Agora, nosso problema era quando era necessário obter uma textura de nossa imagem, a fim de adicioná-la à nossa lista, lista de itens. E estas são duas soluções diferentes para isso. Então eu deixaria isso com você. Qualquer que você queira usar depende completamente de você. Não importa aqui. Mas com isso, vamos parar aqui, temos que carregar. E no próximo vamos dar uma olhada em remover nossos itens de nossas cenas.
10. Remover objetos da cena: Certo, todos neste vídeo, vamos dar uma olhada em remover nossos objetos de nossa cena. Agora o que queremos dizer com isso é quando
jogamos, podemos ver que temos nossos objetos adicionados ao nosso inventário. Mas onde você iria em frente e recolhê-los? Outra vez? Não queremos que isso aconteça. Queremos que se coletamos o item, queremos que o item desapareça. Não queremos pensar em quão estranho seria se você fosse
à cozinha e dissesse que pegava uma bebida, certo? Talvez ele pegue café para ela, você pega uma xícara de café, vai para a sala de estar, pode assistir TV ao vivo pela manhã. E você opta de volta para a cozinha e há outra xícara de café. É como duplicado de alguma forma. Não queremos que isso aconteça. Então nós queremos ser capazes de remover o café para que quando você voltar lá, ele não esteja lá. A única cópia que você tem é um corte que você já pegou. Então vamos fazer a mesma coisa, mas com nossa nua e nossa câmera aqui. Então vamos fazer isso dentro do nosso roteiro principal aqui. E vamos usar duas funções para isso porque não
queremos que nossa função fique muito longa. Você não quer ter uma função ficar super longa. Só parece ruim. E eu diria que é como um mau treino, certo? Neste ponto. Então vamos tentar minimizar isso usando duas funções que ambos fazem uma coisa específica. Então vamos criar nossa função. Vamos remover objetos da cena. E é nisso que isso vai se especializar, removendo todos os nossos objetos. Então vamos fazer se for global,
se eu puder soletrar dados de pontos. Eu fiz isso de novo. Colecionável ou desculpe, objetos clicados coletados. Então, dizendo que se objetos coletados, estamos basicamente dizendo se temos itens aqui, porque se não houver itens nesta lista, ele irá, ele retornará falso. E se for falso, então nosso código não será executado. Então, se temos itens, temos pelo menos um item em nossa lista. Então vamos fazer para o item em. E eu vou copiar isso porque já escrevemos isso tantas vezes agora. Então, para cada item em nossa lista, então se temos itens em nossa lista, vamos fazer isso para cada item. E vamos começar por verificar se há um espaço no nosso item. Porque lembre-se se temos nossa chave de porão, por exemplo, temos um espaço e nosso nome do item, nome do item. Seria estranho tê-lo como macaco base todo esmagado sem espaço. Então vamos verificar se o objeto tem um espaço, certo? Se espaço no item. Então o que vamos fazer é quando o item DO é igual a substituição do ponto do item, não substituído por, mas apenas substituir. E o que isso vai fazer isso espacialmente vai substituir o primeiro argumento que passamos. O segundo. Então nós vamos fazer nossos parênteses, ou desculpe não parênteses são um par de aspas com um espaço no meio. Então vamos substituir todos os espaços com, vamos apenas fazer aspas duplas com nada no meio. Então eu vou pegá-los ou espaço e substituí-lo por nada. Então, o que essa proporção faz é excluir qualquer espaço em nosso nome do item. Agora, depois de termos feito isso, podemos ir para a próxima linha e podemos apagar uma vez para podermos recuar. Então, quando o mesmo nível como a nossa declaração if, e nós estamos apenas indo para chamar remover item de parecer. Agora nós vamos ter um pouco de um erro aqui porque nós ainda não criamos isso, mas nós estamos prestes a, e nós vamos apenas passar o item em nosso objeto ou passar isso em nosso argumento. E agora para nossa nova cena, ou desculpe, uma nova função, podemos criar essa fonte pode remover item de ver. Agora é preciso um argumento, um argumento lá. E era um cólon e passe. E verá que todos os nossos erros desaparecerão agora. Então, o que queremos fazer com esse item? Queremos dar uma olhada em todas as crianças que são tudo o que é as crianças da nossa cena principal aqui. E queremos remover qualquer um deles que já coletamos, certo? Então, se apanhámos o urso, queremos remover o urso. Se recolhermos a câmara, queremos remover a câmara. Então o que vamos fazer, primeiro, precisamos de uma lista de todos os nossos filhos e da nossa árvore. Então vamos ver e verificar, obter uma lista de todas as nossas notas aqui. Várias receitas para a criança em auto.idade, crianças. Então, para todos os nossos itens aqui, todos os nossos itens, o que vamos fazer é verificar se o item é igual ao nome do ponto filho. Então vamos verificar se o item que passamos, que vai ser qualquer um dos nossos objetos aqui sem espaço, qualquer objeto que tenhamos coletado. Se o nosso objeto estiver em qualquer lugar desta lista. Faça isso. E o que vamos fazer é simplesmente fazer o nó. E fazemos um ponto. Opa. Desculpe se temos que colocar isso entre aspas, fazemos um ponto, o que significa auto, e fazemos uma barra. E o que vamos colocar lá é que vamos ter a nossa segunda citação, certo? E vamos fazer espaço mais item. E isso vai basicamente obter o objeto que corresponde ao nosso item. E então podemos ligar para Q grátis. Então, basicamente, vamos excluir qualquer item que corresponda. Agora eu acredito que podemos fazer isso, não
podemos superar isso, não nos permitir? Certo, então devemos ser capazes de usar nosso espaço reservado assim. E agora, quando nós
carregamos, podemos ir em frente e, e estão prontos função. Podemos chamar remover objetos da cena. E se apertarmos Play, lá, estamos todos nus e nossa câmera sumiu porque não colecionamos. E novamente, eu deveria ter apenas uma configuração de botão para este diretório de dados do usuário get. Então, só para mostrar que funciona. Vou em frente e apagar os meus dados. Então, se começarmos um jogo novo, é assim. Temos nossa câmera e nosso urso aqui. Vou clicar em “Comprar Urso”. Feche isso. Pare de jogar, e então talvez eu volte e jogue meu jogo de novo depois escreva. Nosso urso se foi, mas nossas câmeras, então aqui porque não coletamos isso ainda. E o nosso urso tem um representante aqui no nosso inventário. E agora podemos clicar em nossa câmera. E se pararmos de jogar, talvez voltemos mais tarde. Nosso urso se foi e nossa câmera se foi. Então agora temos itens sendo removidos de nossa cena. Nós os colecionamos, o que é ótimo. Estamos adicionando nossos itens a uma lista de dados que agora podemos salvar e carregar. E nós copiamos objetos do nosso jogo para,
para o computador, para que possamos realmente acessá-los para criar nossas texturas a partir dele. Tudo bem, isso vai fazer com este vídeo. E a próxima. Não sei o que devemos fazer? Talvez devêssemos dar uma olhada em objetos arrastáveis. Nós daríamos uma olhada nisso no próximo.
11. Objetos arrastados: Muito bem, pessoal, neste vídeo vamos rever a criação ou como criar um objeto arrastável. Então vamos ser capazes de colocar em nossa tela e depois arrastá-lo. E para o nosso exemplo, vamos usar um envelope porque talvez, talvez você queira criar um mapa onde talvez você tenha uma mesa, certo? E você tem que descobrir a chave movendo envelope, certo? E então podemos usar essa chave mais tarde para desbloquear algo que são usados no objeto para um quebra-cabeça ou algo assim, certo? Então vamos em frente e criar nosso objeto arrastável. E nós vamos começar exatamente,
exatamente como nós normalmente fazemos. Então vamos ter um sprite com uma área e uma colisão. Vou dar o nome ao meu envelope. Vou mover o meu sprite ou a minha imagem. Então, vou trazer o meu envelope. Nós temos nossa imagem e agora podemos definir nossa forma de colisão, que novamente, nós vamos apenas usar um retângulo, um encaixá-lo o melhor que você puder. Aqui vamos nós, isso parece bom. Incrível. E podemos guardar um envelope pô-lo na nossa cena. Excelente. Muito bem, então o nosso objecto de drywall vai precisar de um guião. Vá em frente e coloque isso na pasta do script. E vou chamá-lo de arrastável. Então este será nossos objetos arrastáveis estão prontos. Então vamos precisar de algumas coisas aqui. Para o nosso objeto arrastável, vamos precisar de um mouse inserir variáveis, então precisamos saber se o nosso mouse lá, É na área que vamos precisar. A seguir, que por padrão será falso. Vamos pegar uma posição inicial desta direita, só
podemos arrastá-la até aqui. E se você quiser ter certeza de que você não pode atribuir um tipo diferente de valor a uma variável, que pode fazer é você apenas fazer dois pontos e, em seguida, você pode atribuir uma classe a ela assim. E então podemos possuir nosso Starbucks e só seremos um fator também. Se você tentar atribuir qualquer outra coisa a ele, isso causará um erro. Então, por exemplo, se seguirmos, se quisermos aqui, podemos ir assim e chamá-lo de bool. E então definiríamos igual a qualquer que seja o valor. E não é algo que você tem que fazer, mas é algo que você pode fazer e depende completamente de você. Outra coisa que podemos fazer, que na verdade vai tirar vantagem aqui é a exportação. E isso nos permitirá mudá-lo no lado direito dentro do nosso inspetor, que realmente ajuda a fazer scripts e reutilizáveis. E isso pode arrastar a distância. E vamos apenas fazer isso um int, que será um inteiro, um número inteiro. Então, se dissermos que se você clicar em seu envelope agora você vai notar no lado direito, você verá uma seção aqui para a nossa distância de arrasto. Então, em nossa função pronta, a primeira coisa que vamos fazer é definir nossa posição inicial vai ser igual a auto-posição idade. Então, obviamente, nossa posição inicial será onde quer que trouxemos este envelope nele. Vamos conectar dois sinais, que podemos pegá-los diretamente de nossos objetos. Para fazer exatamente a mesma coisa, vamos conectar nosso mouse entrou e saída do mouse. Então, para economizar tempo, vamos copiar ambos os textos. E já que estamos lidando com exatamente os mesmos nomes de funções, também
podemos trazê-los. E não precisamos mudar essas funções porque
vamos definir isso verdadeiro e falso quando nosso mouse está dentro e fora. E, claro, queijo ou cursor para deixar o nosso jogador saber. Para que essa parte de nossos objetos permaneça aqui. O que precisamos acrescentar é, na verdade, duas outras seções de “Eu acabei de vir aqui”. E nós vamos fazer uma entrada não tratada, que é bom para quando você está criando um jogo aqui. Assim você não está fazendo um cheque a cada segundo. E especialmente porque não precisamos da função de processo, certo? Não precisamos de tempo para ditar nada neste jogo. Então, podemos entrar e podemos fazer uma verificação se a entrada é pressionar o botão do mouse e podemos apenas colocar no botão do mouse um, que será um clique esquerdo. Se você quiser usar, é ação pressionada. Então você pode ir em frente e usar isso para, e você pode colocar em nosso nome de ação, que foi clique com o botão esquerdo do mouse. Então, se você quisesse, você poderia fazer isso, que seria apenas carrapatos sentados lá. Então, se você quiser fazer isso em vez disso, você pode ou um desses ou trabalhar para esta situação e não afetará nada. Mas vamos receber um cheque. Se estamos pressionando nosso mouse com o botão esquerdo do mouse, digite este igual a true, então vamos definir seguinte como true. E, na maior parte, podemos copiar isto. Defina seguinte como false. E, na verdade, o que vamos mudar aqui é que vamos realmente colocar um ponto de exclamação antes de colocar em nossa entrada. E o que isso significa é que não significa. Então estamos procurando por algo que não é verdade. Então, se não botão do mouse pressionado taxa longa. Então, se não estamos pressionando o botão esquerdo do mouse e Mao centro é verdadeiro, então seguinte é falso. Então só vai ser verdade quando estivermos a clicar. Tudo bem? E precisamos de mais uma função aqui, que será uma função de processo. E isso é algo que vai rodar todos os quadros do nosso jogo. Então algo que está constantemente em execução em todos os momentos. E o que vamos fazer é verificar se estamos seguindo. Igual verdadeiro, que só é verdade quando estamos, nosso mouse está sobre um objeto e nós estamos clicando e segurando o botão do mouse para baixo. E então vamos fazer e verificar se auto-posição ajuda se soletrarmos isso direito. Então auto-posição, e então nós vamos verificar a distância, distância 2. E isso vai levar um vetor para uma variável. Então o que vamos passar aqui é a nossa posição inicial. Queremos obter a distância numérica entre onde estamos e onde começamos, onde envelope está na tela e onde começou, ele foi apontado. E nós vamos dizer que se isso é maior ou igual à nossa distância de arrasto, então nós vamos apenas seguir para falso. Então isso vai nos permitir, quando estamos arrastando nosso envelope, só
seremos capazes de mover
nosso envelope a uma certa distância de onde eu respondo. Dessa forma, você não pode simplesmente pegá-lo e arrastá-lo para qualquer lugar na tela. Você só pode movê-lo uma determinada quantidade de distância. E agora vamos colocar um outro cheque seu recuo aqui. Não queremos um processo judicial ou coisas estranhas acontecem. Então, se não estamos passar a nossa distância de arrasto, então é claro que queremos arrastar o nosso objeto, o que me levou autof.age, definir posição. E então o que vamos definir para você? Vamos configurá-lo para a posição do mouse,
então obtenha a posição global do mouse. Então, se passarmos por isso, se tivermos nosso mouse em cima do objeto, mouse inserido é verdadeiro. E se clicar e segurar o botão esquerdo do mouse, quer através do uso do botão do mouse pressione com um como argumento ou usando é ação pressionada. E passando nossa entrada com o botão esquerdo do mouse. Vamos transformar isso em verdade. Caso contrário, seria mais vez seguindo verdade. Caso contrário, é falso. Eu teria que seguir é verdade. Então nós vamos atualizar constantemente
sua posição para que ele esteja sempre indo com o nosso mouse. Assim como estamos arrastando por aí. E se passarmos a distância, a distância máxima que definimos para nossa distância de arrasto se torna falsa e não podemos mais pegá-la. Tudo bem, então vamos dar uma olhada nisso. Vamos entrar na nossa cena. Então, de volta em 2D, clique em nosso principal e instância em nosso envelope. E vamos colocá-lo na mesa aqui. E então nós temos um selecionado não iria para a direita e centro e distância de arrasto, eu vou definir o meu para 100. E podemos acertar o jogo. E você vê que nosso cursor do mouse muda. E quando clicarmos, podemos arrastá-lo por aí. E como você vê isso sem parar porque eu atingi esse limite de 100. E se mudarmos isso para algo como 300 seria capaz de ir, será capaz de arrastá-lo três vezes e essa distância. Então cabe a você o quão longe você quer fazer sua distância ir. E uma vez que temos isso fora do lado, você pode alterá-lo em uma base por objeto. Mas uma vez que atingimos esse limite e não podemos mais
arrastá-lo e ele não vai mais estar seguindo nosso mouse. Agora, eu vou transformar o meu de volta para 100. E eles são reais. Agora temos um objeto arrastável para o nosso jogo. Portanto, há uma coisa que precisamos ajustar porque vamos ter um pequeno bug. Se você não foi apenas colocar isso de volta em uma nova ordem, deveria ser. Então, se criarmos outro objeto aqui, vamos ver outro nó em nossa sprite, nossa área, nossa forma de colisão. Vamos chamar isso de nosso porão. Lembre-se de não colocar nenhum espaço lá. Não queremos ter um problema. E podemos apenas trazer a nossa chave para a nossa textura. Forma de colisão central. E sabemos salvar nossa cena Chave do Cave. E onde está o nosso guião? Vamos trazer o nosso script de objetos. Então, na nossa cena principal, se formos em frente e trouxermos uma chave, onde está a nossa chave? O que aconteceu lá? Lá vamos nós. Então, se trouxermos a chave e a colocarmos atrás do envelope porque queremos que o envelope a esconda, certo? A chave deve ser um pouco grande demais. Então eu vou voltar para ele e redimensioná-lo. Redimensione minha balança. Pague pela metade. Então você vai notar alguma coisa. Agora, quando estamos aqui e clicamos em nosso envelope,
nosso Qi realmente é coletado. Então isso é um pequeno problema. Porque obviamente não queremos que isso aconteça quando queremos que nosso jogador remova o envelope. Então precisamos considerar isso também. Então, dentro de nosso script de objeto, aqui vamos
nós, podemos criar outra variável que é chamada clicável, e vamos definir isso como false por padrão. E a Rússia e entrar em nossa função de processo aqui. E vamos fazer uma verificação. Então nós vamos dizer se não área 2D ponto obter áreas sobrepostas. Então isso basicamente vai verificar se não temos dois objetos que estão se sobrepondo. Então, se não temos um objeto em cima de outro, então vamos definir true clicável. Então vamos defini-lo falso por padrão. E se os objetos não estão
se sobrepondo, para ser verdade, caso contrário, estaremos de volta ao nosso padrão aqui false. E agora tudo o que temos que fazer é apenas descer para a nossa entrada não tratada onde estamos verificando o clique esquerdo e centrado no homem e nós estamos apenas ir em frente e adicionar também. E clicável é igual a verdadeiro, certo? É tudo o que temos que fazer. Agora podemos entrar e mover o envelope. E teríamos a nossa chave lá pronta para ser obtida. Então, se formos em frente e verificarmos isso, acredito que tenho isso aqui. E vamos abrir meu diretório bem rápido, apagar meus dados. Set. A prata será capaz de vê-lo. Posso arrastar isto e não afecta a nossa chave. Mais uma vez, vou fazê-lo bem no meio. Posso clicar no meu envelope e movê-lo sem tocar na minha chave. E agora eles não estão se sobrepondo. Posso clicar na chave. Tudo bem, então agora para fazer isso para este vídeo, você agora sabe como criar um objeto arrastável. E você sabe como evitar uma falha aconteça onde você pode pegar um objeto que está por trás dela. Então, sempre que você quiser criar um objeto indireto, agora
você pode usar esse script e ajustar a distância onde você precisar.
12. Informações para usuários: Tudo bem, todo mundo. Então pensei que poderíamos ter um dia mais frio aqui, não fazer muito. E este vídeo. Mas o que vamos fazer, e se você seguir em frente e carregar retórica, nós vamos ter isso para que quando selecionarmos um objeto, nós realmente só podemos selecionar nossa chave. A razão pela qual nós vamos fazer isso é para que quando alguém está jogando nosso jogo, nós não vamos ter confusão, certo? Porque se pudermos selecionar um objeto, o jogador pode assumir, oh, eu posso usar esse objeto para alguma coisa. E nós não queremos dar a eles essa falsa, eu acho que essa falsa intenção, esse processo completo de pensamento falso. Então nós só vamos permitir que eles selecionem nossas chaves, porque obviamente chaves são para abrir algo, a câmera ou suportar qualquer coisa. Nós só queremos que eles sejam capazes de ter esse direito. Recolhidos à medida que avançamos. Então, para fazer isso direito, você e fazer isso dentro do nosso roteiro principal aqui. E vamos precisar conectar nossa configuração aqui. Temos removendo objetos para lugar. Acho que não temos uma queda por isto. Sim. Criando nossas próprias texturas. Não, não temos um para conectar nossos sinais. Ok, então vamos em frente e podemos criar uma função. E vamos chamá-lo de sinais simples e simples
ao ponto e nos diz no futuro exatamente o que está acontecendo aqui. Então vamos pegar nossa lista de itens, que nosso inventário lembra. E nós vamos nos conectar. Vamos conectar o item selecionado. Lá está ele. Eu mesmo assim para este script. E nós estamos apenas, vamos chamar esta função no item selecionado. Ross vai se conectar da nossa lista de itens. Nada selecionado. Eu vou dizer sobre nada selecionado Bar Método. E para ser seguro, sempre criaremos nossas funções antes de esquecermos. E o mesmo com o próximo. Tudo bem. Então, em nada selecionado. O que isso significa é que quando clicamos em um espaço vazio aqui fora que ele não tem nada. Diga, veja no momento nada acontece. Nossa nua ainda ficar selecionada tipo de nossa câmera e nossa chave do porão. Então o que queremos que aconteça é não ter nada selecionado. Então, a maneira mais fácil de fazer isso é simplesmente ir para a
nossa lista de itens e apenas chamar Selecionar tudo. E, claro, vamos definir nosso item selecionado. Na verdade, ainda não temos uma variável para isso. Até agora, item selecionado. Basta deixar isso como uma string aberta ou como uma string vazia em vez disso. E vamos definir item selecionado como sendo apenas uma string vazia, assim como está em nossa variável no material no topo. Certo, então quando selecionamos um item, vamos definir nosso item selecionado para ser esse item. Também. Antes disso, esqueça a função no item selecionado para este sinal, nós realmente temos um argumento que entra, que é apenas o nosso índice. Então eu vou colocar IDX e lá você pode chamá-lo do que quiser. Assim, os itens selecionados são iguais ao item, ponto da
lista obtém itens selecionados. Então, uma vez que só podemos ter um item selecionado, ele só vai obter um item. Oh, meu erro. Eles não são nós não queremos obter o nosso item selecionado. Queremos obter o item como texto. É isso que queremos fazer. Então nós obtemos o texto de item e passamos o índice para que ele saiba. E se você quiser ir em frente e imprimir o item selecionado aqui se você quiser ter certeza. Mas nós vamos fazer se não chave, para lembrar, chave vai estar entre um par de aspas e não. Você pode digitar a palavra nada ou simplesmente puxar o ponto de exclamação. Portanto, se não o item chave selecionado. Então, se a palavra chave não faz parte do nosso item, então estamos apenas desmarcando, desmarcando tudo. E agora você vai ver que se nós temos nossa nua selecionada, por exemplo, e clicar no lado de fora, nada está acontecendo agora por que é isso? Para nossas funções não estão sendo cortadas. Isso mesmo, meu erro. Eu tenho que ir para o evento pronto. Não estamos conectando nossos sinais. Então vamos chamar nossa função conecta sinais. Lá vamos nós. É por isso que não está funcionando. Certifique-se sempre de que as suas coisas estão realmente funcionando. O agora você verá aqui quando tentarmos clicar em um item, se a chave não estiver no nome. Então, vamos ter o nome neste caso vai ter urso quando clicarmos nele. E a chave não está no nome do item, qual chave não está lá, então vamos desmarcar imediatamente. Então parece que não está sendo selecionado. O mesmo com a visão da câmera. Se selecionarmos nossa chave, a chave está no nome. Então não vamos, não
vamos desmarcar. Tudo bem? Então, clicamos nele e eu selecionaria. E se clicarmos na área vazia aqui, nossa função nada selecionada, bem gatilho e podemos desmarcar são chave. Lá vamos nós. Então agora podemos, agora temos um pouco de mesa extra agradável adicionado para o nosso usuário aqui. Dessa forma, eles sabem que se eles podem selecionar algo, eles provavelmente terão que usar isso em algum lugar em algum momento. Tudo bem. É isso. Isso é tudo que eu queria mostrar a vocês para este vídeo. E a próxima. Não, claro o que vamos cobrir. Não sei com o que vamos começar.
13. Mapa: Muito bem, todos neste vídeo, vamos em frente e criar o nosso mapa. Nós só teremos nossos dois locais, mas ele mostrará como você pode criar um mapa que você pode usar para alternar entre diferentes locais ou salas diferentes. Se talvez o seu jogo tenha lugar apenas dentro de um edifício, você terá diferentes áreas configuradas para salas diferentes. Ou neste caso, vamos passar deste piquenique para explicitar nesta rua. Então vamos em frente e deletar isso aqui. E já vamos. Então, para isso, vamos em frente e criar uma nova cena. Vamos usar outro nó. E para isso, vamos usar uma camada de lona como este atrevido vai nos ajudar a ficar no topo. Isto vai ajudar-nos a manter-nos a par de tudo o que se está a passar. E vamos em frente e trazer nosso mapa,
BG, por assim dizer, nosso plano de fundo do mapa. E eu vou ir em frente e salvar isso. Vamos chamar este mapa e, claro, para as cenas centrais. Tudo bem, então só para dar um exemplo, se trouxermos nosso mapa aqui, você pode ver que nosso mapa está em cima de tudo, o que é ótimo. Mas se a colocarmos na nossa lista de árvores, ainda estará em cima de tudo. Então este é o benefício de usar uma camada de tela e por que você
usaria uma camada de tela para alguns como UI. Então, se você teve um jogo com saúde, você vai colocar sua saúde na camada de tela. Então toda a sua interface de usuário estaria lá. Se você creditar um menu de pausa, você provavelmente gerou isso em uma camada de tela de desenho ou instância. Colocaremos isso dentro de uma camada de lona para trazer mais tarde. Mas isso é processado. Dê-lhe uma idéia de por que usamos camada de
tela ou por que vamos usar uma camada de tela para isso. Assim, no caso de alguma coisa acontecer por alguma razão e as coisas ficarem fora de ordem. Podemos sempre ver o nosso mapa quando o trouxermos. Então vamos em frente e deletar isso por enquanto. Volte para a cena do mapa. E vamos precisar do nosso piquenique e da nossa rua. Agora você vê que eu nomeei eles mapa e tudo que eu fiz foi apenas adicionar uma transparência e um, uau, eu vejo apenas em um círculo, raio. Agora, eu sempre posso entrar e eu posso mudar isso, torná-lo menor ou maior dependendo do que estamos fazendo com nossos mapas para isso. E ele vai seguir em frente e executar isso e tentar fazer isso não do mesmo tamanho, um pouco maior. Então vou escrever um pouco mais. Certo, então podemos fazer algo assim, certo? Talvez saiamos de lá e depois descemos para cá. Agora, obviamente, se você tem um mapa como este, você provavelmente pode ter um pouco mais de detalhes no
próprio mapa ou fazer com que eles pareçam um pouco diferente. Tem mais superior, obviamente mais do que apenas dois locais aqui. Mas vamos usar a tese como exemplo. E com cada um desses, vamos em frente e adicionar uma área em uma colisão quando criança e uma forma de colisão. E é claro que vamos fazer disso um círculo. E vamos fazer isso encobrir nossas áreas assim. Então, novamente, com o nosso mapa, temos área para D e, em seguida, nossa camada de colisão ou forma de colisão. O que seria um círculo? Trazê-lo para fora, alinhá-lo, certificar-se que é bom. Bits cobre tudo o que você precisa. Tudo bem, então agora temos nossas duas áreas que foram capazes de clicar em. Agora, um problema aqui é que precisamos ser capazes de detectar um mouseclick, que não é algo que possamos realmente detectar facilmente, eu diria apenas com um clique de um mouse. Então, na verdade, eu tenho que fazer um pequeno script para isso. Então isso é fácil, tudo bem. Nós podemos realmente adicionar apenas um script em nossa camada de tela. E, obviamente, queremos colocar isso
nos assistentes de seleção certos e nossa pasta de scripts. E vamos chamar este mapa de raiva já. Tudo bem, então com a nossa área de configuração, vamos em frente e conectar-nos aos sinais do VSM. Então, um para o nosso piquenique ou dois para um piquenique para a floresta e eu tenho que fazer para qualquer outro quarto que você queira ter conectado a isso. Então vamos em frente e ligar um homem centrado. E eu vou em frente e selecionar ou definir isso. Uma vez que este é para a minha rua, eu faria na rua, área entrou. E faremos a mesma coisa com uma saída. Então, o que fazer na área da rua saiu? E fazemos uma coisa semelhante em nosso piquenique oops. Área de piquenique entrou. E na área de piquenique saiu. Tudo bem, então temos nossas quatro funções configuradas aqui. E nós vamos fazer uma coisa muito semelhante porque nós vamos
configurar uma variável na parte superior do nosso script para mouse enter, que será falsa por padrão. E na nossa saída, vamos definir isso como falso assim. E na entrada, nós vamos mudar isso para verdadeiro já. Então agora temos a nossa escolha e definir banir falso conjunto. Então vamos em frente e criar outra variável. E vamos chamar este destino. Vamos a isso. E, por padrão, será uma string vazia. Agora, quando entrarmos na área da nossa rua, vamos definir destino igual. Ou de rua, certo? E então quando ele sair, vamos apenas colocá-lo de volta para estar vazio. E poderíamos fazer a mesma coisa no piquenique. Aqui vamos nós. Então prepare isso para um piquenique. Incrível. É uma função pronta, não
vamos precisar dela. E podemos fazer uma entrada sem tratamento. E o que você faz se o mouse entrar nessa verdade? E o ponto de entrada é a ação pressionada ou clique com o botão esquerdo do mouse. Então, novamente, assim como com nossos objetos, se nosso mouse estiver dentro da área e clicarmos com o botão esquerdo do mouse. Nós vamos fazer isso. E o que vai ser isso? Isto vai mudar a nossa cena. Então nós vamos fazer ainda árvore ponto mudar cena. E para estes no exterior ou em um local. Mas o que vamos fazer, então vamos fazer assim. Vamos fazer o RES. Então, nossas matrizes aqui, dois pontos barra barra. E vamos colocar nossa pasta de cenas barra. E então vamos colocar livros
por cento S que não funcionaram por cento com um pouco S dot T SCN. E, em seguida, fora de nossos parênteses, vamos fazer por cento lado e passar em nosso destino. Isso exige que mudemos o nome da nossa cena porque agora temos nossa cena como sendo chamada de principal. Na verdade, precisamos mudar isso. Assim visto, clique com o botão direito do mouse em nossa cena principal e onde é renomeado Rio. E vamos mudar o nome para piquenique. Lá vamos nós. E já que fizemos isso, não precisamos mudar mais nada. Tudo foi atualizado lindamente. Agora, quando clicamos em nossa rua, isso deve então mudar nossa cena para rua porque nosso destino vai ser rua. Então, quando fazemos essa cena, precisamos ter certeza que ela é chamada rua e verificar novamente sua ortografia porque você quer ter certeza de que você está ortografia está correta e sua capitalização vai ser correta. Então vamos em frente e pelo menos rapidamente fazer nossa cena aqui. Então, vamos ligar para a rua. Você pode salvar isso dentro de nossas cenas como rua. Isso é bom. E vamos trazer nossa imagem e vamos diminuir o zoom. Agora você pode posicionar isso e redimensionar isso para o que quiser para o seu jogo. Vou deixar meu tamanho padrão e deixar assim. Toque minha cena atual, apenas tenha uma idéia de como ela parece. Sim, acho que é bom para isso. Talvez você gostaria de nos colocar um pouco mais pequenos. Tudo se resume à sua preferência pessoal neste caso. Tudo bem, então temos nosso mapa e vamos fazer essa cena atual só para ver se as coisas funcionam. Então, vamos clicar no nosso piquenique e carregamos nosso piquenique. Tudo bem? E se abrirmos isso de novo, se clicarmos em nossa rua, devemos nos levar para nossa rua. Tudo bem, então o mapa está funcionando lindamente. Eu diria. E agora podemos ir em frente e para a rua, obviamente precisamos colocar em nosso inventário e mover esse tipo de coisas por todo o lado também. Mas isso será, deve ser fácil o suficiente, já que temos nossos scripts praticamente configurados para apenas passar para cada nível para cada área.
14. Como usar o mapa: Tudo bem, todo mundo. Neste vídeo vamos em frente e
criar ou usar isso e aproveitar a chance de configurar nosso sênior de rua. Então, vamos ter o nosso inventário aqui. E então vamos em frente e configurar nosso mapa para que possamos ter um botão mapeado para ele para que possamos
trazê-lo para cima e ser capazes de realmente alternar entre nossas cenas. A coisa mais fácil a fazer é obter o nosso inventário estará aqui. Porque agora que estamos em Gato 3.3 ou mais tarde você pode realmente vir no topo da cena de piquenique, clicar com o botão direito ou lista de itens, copiá-lo, voltar para a nossa rua e colá-lo. E agora temos aquele n. Se formos em frente e tocarmos aquela cena, devemos ver nosso inventário agora que está carregado aqui também. Então, quem por agora eu vou ver o OTP pode clicar é a nossa chave ainda. Tudo bem, então vamos começar o nosso mapa. Vamos passar para o nosso mapa de entrada de configurações do projeto, e ir em frente e definir uma chave para a ação do mapa. Se você não tiver um, é claro que venha até a ação de criatura superior para
o mapa, atribua uma chave a ele. Eu só vou usar m para o mapa. É mais fácil de lembrar e é bastante comum. Nós vamos para o nosso script global e nós realmente
vamos carregar em nosso mapa que,
bem, nós só carregá-lo em uma vez em nosso jogo, mas nós não temos que carregá-lo várias vezes. Então var, vamos chamar este mapa igual e vamos apenas pré-carregado em trazer o nosso mapa visto. Lá vamos nós. Assim como assim. Então podemos ir para o nosso script principal, criar uma variável para exibição do mapa. Então isso é falso por padrão. E nós vamos descer e criar o que queremos para criá-lo. Agora, eu vou em frente e criar o meu para baixo aqui na parte inferior, vamos criar uma entrada não tratada. Então agora podemos verificar se o ponto de entrada é ação. Só apertei nosso botão de matemática. Então, para mim, para mim, então sempre que eu pressionar M no meu teclado, nós vamos fazer isso. E apagar precisa verificar se a exibição do mapa é igual a false. Então, se não estamos mostrando nosso mapa e vamos definir a exibição do mapa como verdadeiro. E nós estamos indo para instância em nossos mapas. Então vamos fazer var int mapa. E isso será igual ao mapa
global porque queremos acessar esse mapa que foram instância de ponto freeloading. E então, é claro, uma vez que tenha sido instância, precisamos realmente adicioná-lo como uma criança. Então nós precisamos realmente colocá-lo em nossa cena no mapa. Certo, e agora se o nosso mapa já estiver aparecendo, certo? Precisamos ser capazes de removê-lo. Se tocarmos nossa cena agora. Podemos trazê-lo à tona, mas não podemos nos livrar dele. O que significa que uma vez acordada, temos que viajar para algum lugar. E isso pode nem sempre ser o caso. Talvez aperte o botão por acidente ou você só quer dar uma olhada nos lugares que você tem. Então vamos em frente e fazer outra declaração aqui. Então, obviamente, só temos verdadeiro ou falso para a exibição do mapa. Então, se a exibição do mapa for falsa, faremos isso. Caso contrário, deve ser verdade. Então nós vamos descer aqui. Somos tratados com exibição de mapa igual a falso. E nós vamos em frente e vamos colocar todas as crianças em nossa cena. E vamos dar uma olhada nele. E se virmos nosso mapa lá dentro, então vamos nos livrar dele assim como estamos fazendo com nossos objetos quando nos livrarmos deles. Certo, assim como fazemos aqui para remover item da cena, basicamente
vamos pegar nossos filhos, certo? Então vamos fazer para criança em idade própria. Opa, ponto-ponto-ponto ainda crianças. Se o nome do ponto filho for igual ao mapa. Agora, observe que eu mudei minha camada de tela para ser nomeado mapa. Então, se você quiser usar a palavra mapa aqui, certifique-se de que você tem esse conjunto. Caso contrário, não vai funcionar. Então, se esse conjunto, então nós estamos indo apenas para removê-los, obter nó. E nós poderíamos apenas fazer o nome do ponto da criança, ponto Q livre. Certo? Agora o que fazemos o nosso jogo ou no nosso piquenique, podemos acertar o nosso mapa chave aparece. Podemos viajar para a nossa nova localização. Mas também atingimos o nosso MK, nosso mapa aparece, pressionamo-lo novamente e desaparece. Para que eu possa trazê-lo para cima e fazê-lo desaparecer a qualquer momento. E podemos viajar para todos os locais que gostamos ou para todos os locais que
já configuramos . Então não temos essa configuração e somos
facilmente capazes de nos mover para frente e para trás. Nosso inventário fica conosco. Então eu acho que a próxima, mas vamos abordar é vamos dar uma olhada em usar, estão usando nossa chave aqui. E usaremos isso para nos livrarmos ou abrirmos nossa porta aqui. E então, é claro, se você quiser usar isso para entrar em uma nova área, mesmo obviamente, você vá em frente e faça isso também.
15. Bloqueios: Oops, vamos apenas mover isso e começar a caminho. Lá vamos nós. Tudo bem, então neste vídeo nós vamos ver agora como destrancar uma porta usando as chaves que encontramos. Então o primeiro lugar que precisamos ir é parar em nosso global porque agora temos alguns novos dados para colocar aqui. Então vamos ter uma vaga para portas destrancadas. Lá vamos nós. Será o nosso aparelho encaracolado. E dentro disso nós vamos ter assim ou manter todas as suas portas por horas. Vamos chamar de porta do porão. E vamos definir como falso. Isso vai manter o controle de quais portas em nosso jogo ou destrancadas e quais não estão. Obviamente, estas não têm de ser portas. Isto pode ser peito ou qualquer outra coisa para querer ficar aqui. Agora você pode sempre ter várias coisas ou ela pode ter portas destrancadas aqui e então talvez
aqui embaixo nós teremos baú destrancado. Certo. Então você poderia fazer isso e então fazer o mesmo tipo de coisa, mas ter peito se você quiser separá-los todos. Mas para isso, vamos manter as portas destrancadas. E Q aqui. E acredito que isso é tudo o que precisaremos fazer para nossos dados aqui. Vamos ver. Sim, temos tudo. Então, em seguida,
vamos para a nossa nova cena, porque precisamos criar uma fechadura agora. Então vamos ter uma cena 2D. Eu realmente crio isso como um spray, então eu realmente vou fechar esse canto. Crie um novo, basta acertar outro nó. E eu vou apenas criar um sprite. Vou chamar isso de minha fechadura. E, claro, vamos ter uma área 2D e uma forma de colisão com ela. Então, para a minha fechadura, vou para as minhas texturas. E onde está a minha fechadura aqui? Lá vamos nós, fechadura do porão. Vou trazer isso para a minha textura. E lá vou eu. Certo, então temos nossa fechadura aqui. Precisamos de nossa forma de colisão para cobri-lo é um retângulo. Significa que não se encaixa exatamente. Agora você pode cobrir a coisa toda ou você pode apenas cobrir a área LOC. É completamente com você. É o seu jogo. Faça o que achar que é melhor. Eu mesmo. Acho que vou abrir os dois. Agora, quando tivermos que entrar na área chamada slot,
guarde-a nas minhas cenas. Agora, por cima da minha rua, vou trazê-lo para dentro e colocar tudo em posição. Vou colocar minha fechadura bem na porta. Vamos ver como isso parece. Cena do jogador. Tudo bem, então isso leva a idéia de que esta porta está trancada. Tudo bem. Perfeito. Agora vai servir. Então vamos voltar à cena da fechadura. Podemos realmente criar um script agora para um bloqueio. E coloque isso na sua pasta de scripts. E criar. Certo, certo, do que vamos precisar? Vamos precisar de algumas variáveis aqui. Vamos fazer o nosso mouse inserido, É
claro, que será falso por padrão. E nós pegamos emprestado isso em um momento. Vamos precisar, vamos exportar uma variável chamada chave necessária. E vamos dizer a eles que dizem ao motor que isso tem que ser uma corda. Nós vamos exportar uma outra variável para porta, que será uma string também. E outra, mais uma vez, seja uma corda, vamos chamar de desbloqueio. Imagem. Agora, pode mudar isso mais tarde de eu sou como imagem para outra coisa, mas é disso que precisamos lá. Adicione o nosso texto já. Agora, prontos, precisamos conectar nossos sinais de área, que podemos pegar emprestado de objetos aqui. E basta colar isso ali dentro, bem
como as duas funções para ele. Sim. Tudo bem. Agora, isso é tudo configuração é a parte mais fácil. Não temos que fazer isso constantemente, certo? Também vamos precisar de um sinal para isso. Então teremos um sinal chamado destrancado. O que é que já temos isto aqui? Não, não temos. E acho que não usamos um aqui também. Não, não temos. Então vamos ter algumas seções novas aqui. Então vamos começar criando. Agora não precisamos fazer isso. Vamos fazer isso. Comece com a nossa entrada não tratada. Entrada em estoque, não tratada. E vamos verificar se a entrada é ação apenas pressionada, são clique com o botão esquerdo e um mouse enter é verdadeiro. Então o que faremos, tire isso do caminho. Então o que vamos fazer é ir em frente e verificar. Então vamos fazer se um
item pai selecionado, que temos configurado aqui? Sim. Sim, senhor. Item Selecionado lá. Legal. Tudo bem. Só me certificando. Então é onde nós os tínhamos. Estamos pegando isso do roteiro principal. Então, quando adicionarmos nosso bloqueio, como você vê aqui, vamos pegar nossa rua e vamos verificar esse script,
que é nosso script principal para ver quais são os itens selecionados. Então, se get item paradata selecionado é igual à chave necessária. Então, se o item que selecionamos, que só pode ser nossas chaves, se isso coincidir com a chave que precisamos para destrancar esta porta. E global, global, não global. O que fazemos em seus dados globais? Portas destrancadas e certifica-te que estou a soletrar correctamente. Usamos em maiúsculas aqui. Ok. É sempre bom saber, certifique-se de acertar. Caso contrário, você vai encontrar erros. Portas destrancadas, porta. Então passe pela porta aqui, que é o nome que lhe dará,
é igual a falso. Em seguida, vamos usar uma função que estamos indo para criar chamado desbloquear. Passagem baixa na chave necessária. Então, para se livrar desse erro agora é ir para baixo. E eu entendi isso ao contrário. E vamos criar nossa função de desbloqueio e passar em um argumento. Vamos chamar-lhe C0. Por enquanto, estamos apenas além do caminho. Assim nos livramos de todos os nossos erros. Então o que estamos fazendo aqui é sempre que clicarmos com o botão esquerdo dentro de nosso Locke, vamos verificar se o item que selecionamos aqui no nosso script principal, se isso é igual à chave que precisamos para destrancar esta porta. E se a nossa porta for falsa, que é aqui em cima no nosso global e bem aqui. Então, se nossas portas não destrancadas, e o item selecionado é a chave que precisamos, então vamos destrancá-lo. E como vamos desbloquear isso? O que vamos usar esta função chamada desbloqueada. cabras nos dão algum espaço lá. Está ficando baixo, muito lotado. E como fizemos isso? Bem, usamos dados globais em portas e portas trancadas. Meu erro onde eu estou realmente verificando o que estamos realmente começando em torno de um. Então, vamos voltar. Eu apago a linha, faço o corte deles imediatamente. Mas se você emitir nosso sinal, sem marca. E passaremos o argumento de uma chave. E então vamos definir nossos dados globais. Destrancada. Portas. Claro que passará por uma porta. E vamos definir isso como verdade. Então, o que estamos fazendo quando desbloqueá-lo, vamos chamar emitir um sinal até o nosso roteiro principal. E então, a partir daí, isso vai executar opções para se livrar da chave e de tudo para nós. E eu tenho um título, eles querem dados e não diretos. Tudo bem? E então vamos colocar nossa porta, a porta que estamos destrancando. Vamos fazer com que seja verdade assim saberemos que nossas portas já foram destrancadas. Então é claro que podemos ir em frente e podemos salvar nossos dados, dados globais de salvamento de pontos. E isso é tudo o que temos que fazer lá dentro para destrancar a porta. Mas temos mais uma função que podemos fazer. Poderíamos compartilhar. Sim. Então verifique a porta
destrancada. E isto vamos usar isto para verificar se as nossas portas já foram destrancadas. E se sim, o que fazer isso? E se não, não faremos nada, certo? Então, se pegarmos esses dados globais em portas fechadas, portas destrancadas ou destrancadas, porta é igual a verdadeira. Então, se nossas portas já foram destrancadas, então o que vamos fazer é simplesmente deixar para você, certo? Porque não precisamos da fechadura lá para ser exibida. Podemos nos livrar dele ou as portas já estão abertas. Já. E agora só temos que lidar com o que acontece quando nosso sinal é emitido e conectar nosso sinal ao nosso script principal aqui. Então isso vai estar em nossos sinais conectados aqui. Dois e pegue nossa conexão LOC ponto. E verá que nosso sinal deve aparecer aqui. E se não, então podemos digitar. Chamamos de “eu destrancado”. E chamaríamos isso de chave removida. Ou se a nossa chave Remove não removida, remova a chave. Agora podemos criar esta função. Remova a chave. Então, quando passarmos isso, precisamos de argumentos. Lembra-te que estamos a passar a chave quando admitirmos o nosso sinal. Agora saberemos qual chave nos livrar? Então isso é bom. Var índice chave este direito, sabemos qual item para remover. E esta será a nossa lista de itens. Ponto obter item, ou desculpe, não obter Adam recebe itens selecionados. Itens selecionados, que só pode ser um item selecionado com a forma como nossa coisa está configurada. Então isso vai dar um relatório lento de volta um número que nos diz qual item nós dormimos bem, nós temos o item 0,
item um , item dois, item três, etc. Então ele vai nos dar esse número. E então vamos fazer, vá em frente e se livrar desse item, listar ponto remover item. E passaremos nesse índice de chave. E isso vai nos dar uma matriz. Então vamos dizer 0 porque ele sempre vai ser
o primeiro item, porque nós só temos um item é selecionado a qualquer momento. E faremos dados globais. E isso vamos acessar nossos objetos coletados. Apagar ponto, item selecionado. Há chave não vai mais ser coletada. Não precisamos disso em nosso inventário para ser exibido. Sempre que recarregarmos nosso jogo novamente. E então nós vamos apenas chamar R em nada selecionado para que possamos desmarcar tudo que deve funcionar. Estão prontos. Vamos ver isso. Vamos em frente e executar isso agora. Oh, tente chamar a conexão em instância nula. Isso é porque o nosso piquenique não está ligado. Então vamos para a nossa rua e fazer aquela cena. E devemos ser capazes de usar a chave do porão dela e clicar na fechadura. No entanto, nada vai acontecer. Agora, se você está prestando atenção enquanto estamos passando por isso, nós não preparamos algumas de nossas coisas. Nós exportamos algumas variáveis onde nós realmente não selecioná-los. Então, como você vê no lado direito agora, se você selecionar o bloqueio, podemos colocá-lo na chave que precisamos, que é a chave do porão. Podemos colocá-lo na porta que somos basicamente porta. E lembre-se que a porta tem que coincidir com o que você digitou aqui. E a imagem de desbloqueio, certo? Não precisamos mais disso com isso. Mas se você tem uma imagem diferente, eu vou te mostrar como fazer isso também. Se você tiver uma imagem diferente que deseja exibir. Então, se você seguir em frente e executar isso, você pode encontrar um erro. Quando o executamos ou quando tentamos destrancar sua porta. Sobre um dicionário, problema, índice inválido. Vá em frente e apague seus dados antigos. E você pode ir em frente e apenas lembrar seus objetos. E você deveria ver. Apenas apareça como estando bem agora, quando você executá-lo. Agora, para o piquenique, obviamente temos muito aqui, mas não precisamos dele. Então, por enquanto, vou em frente e podemos fazer isso. E você pode pegar seus itens. Vamos pegar nossa chave, ir para o próximo mapa e nos vemos na clínica ou chave,
clicar em nossa fechadura e estamos trancados. Meu caso já estava aberto de testes. Então eu teria que deletar isso, o que eu vou fazer aqui mesmo. Então, aperte o play que abre e apague meus dados. E vamos impedir que isso apareça. Vamos em frente e reexecutar isso. Agora eu posso pegar um urso, minha câmera, mover o envelope sombriar minha chave, ir para o novo local, selecionar minha chave e trancar. Lá vamos nós. E nossas portas estão destrancadas, nossa chave sumiu. Agora temos um problema. Então, se voltarmos ao parque e movermos o envelope, chave ainda está lá. Então nós vamos realmente precisar colocar em um código para remover nossa chave também. Agora, bem, não podemos voltar constantemente e pegá-lo e continuar agarrando mesmo que nossas portas já estejam destrancadas. Mas antes de fazermos isso, vamos para a nossa fechadura aqui. E vamos ver, vamos desbloqueá-lo. Quando fazemos isso, encontramos nosso sinal que chega ao nosso
principal para remover a chave e que está conectado. Tudo bem, então o que vamos fazer é na nossa fechadura, quando chamamos o nosso desbloqueio aqui, logo depois de salvarmos foram realmente ir em frente e auto Q3 idade. E agora, sempre que
a abrirmos, a porta vai ficar bem, já vai estar destrancada para nós. E certifique-se de executar o seu desbloqueio de verificação e estão prontos função. E só para que possamos verificar depois que já entrarmos, verificar a porta direita do lote, então vamos passar isso. E agora, se fizermos esta cena desde 30 em trancada, essa é a nossa sorte. Queremos a rua. O cheque aqui e desapareceu completamente porque já foi desbloqueado. E agora, se você voltar a chave colecionadora e voltar, devemos ser capazes de destrancá-la e a chave ou a fechadura desaparecerá para nós. Tudo bem, então no próximo vídeo vamos dar uma olhada em remover a chave para que não possamos pegá-la constantemente de nossa cena de piquenique. E vamos dar uma olhada em não precisar ter trancado aqui em nossa cena de piquenique que vemos é que não tem fechaduras, não tem erros neles.
16. Como corrigir bloqueio: Certo pessoal, vamos dar uma olhada em remover nossas chaves da cena. Vamos ver, temos a chave de remoção aqui estamos em nosso roteiro principal. Mas remover a chave é para quando abrirmos uma porta, o que queremos fazer é remover as chaves da cena. Vamos ver para onde estávamos movendo nossos objetos bem aqui. Então vamos em frente e entrar e nós vamos apenas esgueirá-lo aqui
faria remover chaves do mesmo. E, claro, não precisamos de um argumento para este. Porque nós apenas ir em frente e verificar se há porta em dados
globais em portas trancadas. Oh, ok. Lá vamos nós. Então, vou verificar todas as nossas portas. Paramos o passado lá dentro. Por que não me livrei disso? Tudo bem. Então vamos dar uma olhada em todas essas portas aqui e vamos verificar se há falsas ou se elas são verdadeiras. Então, para todas as nossas portas, se nossa porta para porta é, é igual a verdade, então um deve já estar destrancado. E já que a porta e as chaves estão listadas na mesma porta do porão e pegamos a chave do porão, certo? Certo. E o que vamos fazer é criar uma variável chamada chave. A chave será igual a Substituição do ponto da porta. Ele é igual a dor ponto substituir. E o que isso nos permite fazer é substituir um personagem por outro e o personagem que queremos substituí-lo como um espaço. E vamos substituir isso por apenas uma corda vazia, assim. Então, assim, então isso vai remover nossa corda. Então, ao invés de
ter isso assim, o que estamos fazendo é tomar esse espaço no meio. Vamos ocupar esse espaço no meio. E vamos fazer assim agora. Tudo bem? E então, na nossa próxima linha, nós vamos realmente fazer uma coisa semelhante aqui. E vamos substituir
a palavra porta pela palavra chave. Tudo bem. E agora podemos apenas remover o item, remover o item da nossa cena, que é a chave. Então vamos chamar remover item da cena e passar em nossa chave. Então vamos do porão. Porta para porta do porão. E depois vamos substituir a porta. E esse círculo eu sou da porta do porão para Chave do porão. Espero que isso faça sentido e espero que ajude a entender o que está acontecendo. Vamos da loja espacial do porão daquela porta do porão sem espaço. E depois vamos da porta do porão sem espaço para a chave do porão sem espaço. E então, obviamente, se olharmos para a chave do porão do último ano sem espaço, isso é o que vai ser removido da nossa cena. Então nós só temos que chamar esta função para cima e estamos prontos. Remova as chaves da cena. E agora para dar sorte, bem, antes de fazer isso, vamos em frente e testar-nos, entrar em nosso piquenique e remover nosso envelope. Anarquia está indo. Tudo bem, então isso está funcionando agora para se
livrar do problema de conexão para nossa fechadura. Tudo bem, então para isso podemos verificar se a fechadura não é vista e se está conectada, certo? Então, para a criança em auto-idade.idade obter crianças vai verificar se trancado. Então vamos dizer em criança.tipo nome, certo? Então não vamos ligar isto. Então, se Locke está em criança.value faria isso. E assim a qualquer momento vamos conectar isso. Então, se executarmos isso, não teremos erros. Se removermos esta fechadura da cena, estaremos bem agora. Não, já estamos bem. E se formos para a nossa rua ou bloqueio deve automaticamente apagar-se. E faz. Tudo bem, então, para um teste final lá, vou em frente e pegar meu diretório, deletar meus dados. E poderíamos testar isso como uma nova taxa de jogo. Exceto pelo comentário que recuou. Então eu não abrir esse direito vai recolher um urso. Vamos clicar na câmera e no envelope. Clique em nossa chave. Mude para o nosso beco. Abre a chave da nossa cave, abre esta fechadura. Tudo bem, isso se foi. Voltar para o nosso piquenique ou a chave ainda se foi. Volte para a nossa rua. A fechadura ainda está destrancada e não estamos tendo nenhum erro de conexão com nossos sinais. Certo, agora podemos abrir a porta que reclamamos do início ao fim. Podemos ir para o nosso mapa. Estamos removendo as chaves das portas que já foram destrancadas. Só estamos conectando o sinal de bloqueio se
tivermos algo pronto para ser destrancado naquela cena. E o nosso inventário está a ser transferido. E é claro que é totalmente poupador com tudo o que estamos fazendo. E todos os nossos scripts podem ser completamente adicionados a qualquer coisa. Então, se formos dar uma olhada, podemos adicionar nosso roteiro arrastável a qualquer coisa que queiramos
pegar e mover, como nosso envelope. Então, se você quiser esconder algo atrás de outro objeto, você pode fazer isso. Impedimos que o usuário colete algo como uma chave atrás do envelope. Dessa forma, você realmente tem que mover o objeto antes de coletá-lo. O usuário só pode selecionar nossas chaves de forma que eles saibam que as chaves são úteis e tudo o resto não é. Temos uma configuração do sistema de chave de bloqueio para que agora você
possa destrancar o baú ou portas ou qualquer coisa assim. Temos uma configuração de mapa para que possamos ver o mapa e guardá-los, bem como usar esse mapa para viajar entre salas diferentes ou, no nosso caso, diferentes localizações completamente. E nós temos um script de objeto que podemos colocar em qualquer objeto que queremos usar como um colecionável para o nosso jogo. Então nós temos um monte de recursos diferentes implementados aqui, bem
como muitos de nossos scripts sendo capazes apenas ser usado em excesso para colocá-lo em outro objeto, tapá-lo em outro bloqueio. Nosso roteiro principal para colocá-lo em outra cena. Tudo bem, temos muita coisa acontecendo aqui, e se você chegou até aqui, vá em frente e dê uma palmada nas costas. Você fez muito e espero que tenha aprendido muito enquanto fazia isso.
17. Opções alternativas: Tudo bem. Obviamente, eu não posso deixar vocês de fora. Eu disse que te avisaria se quisesse usar a imagem de destravamento. Então, quando você destrancou a porta aqui, se você queria exibir uma imagem diferente, você poderia querer fazer isso, talvez com um baú ou algo assim. Então você tem como um baú fechado ou um baú destrancado ou desculpe, muito peito. Eu não quero que você momento azarado e exibir uma imagem diferente. Ou neste caso, talvez em vez de mostrar uma fechadura, como se não tivéssemos aqui, talvez você tenha outra imagem. Estamos claramente mostrando que foi destrancada. Talvez queiras fazer algo assim. Você pode definitivamente fazer isso e eu vou te mostrar como fazer isso. Dentro do nosso roteiro, temos o desbloqueio imaturo. Então tudo o que você faria é pegar qualquer imagem que você quiser. Eu não tenho um na mão aqui. Então eu vou usar minha chave do porão para este exemplo. E basta clicar com o botão direito Copiar caminho e colar isso em sua imagem de desbloqueio. E, em seguida, dentro do script quando precisa criar uma nova função chamada criar texturizado. Isso vai precisar de uma discussão, apenas um argumento. Vamos ligar para o LBJ. E vamos dizer var I é igual a imagem, carga de ponto IMG. E o que vamos carregar aqui é que você pode passar o OBJ completo se quiser, se você copiou todo o seu caminho. Em seguida, teremos textos que você vê no canto superior direito. Agora textos variáveis, é aí que isso vai entrar em jogo. Igual a imagem, textura. Novos textos da imagem ou IMG. Então o que estamos fazendo é Michelle pegou nossa imagem aqui e estamos criando uma textura para ela. E vamos ver, onde é que ele está destrancado. Então, em vez de usar Q free, o que você faria é chamar criar textura, e você passará em sua imagem de desbloqueio. Como assim. Então, se eu entrar no meu principal e excluir isso, isso vai aparecer. Posso apagar os meus dados. Boom. Desligue isso. Então agora, se formos jogar através do nosso jogo, vamos clicar, boom, boom, agarrar isso. Vá para o nosso próximo quarto, que temos uma fechadura. Agora, em vez de mudá-lo, nós realmente não atribuímos nossa textura. Esse foi o meu erro. Então. Nós criámo-lo. Aqui está a nossa fechadura, criou-a e não a atribuímos. E assim auto.idade, textura, textos. Então é isso que faríamos. E eu vou precisar excluir meus dados novamente para caridade fez isso. Que os livros fazem isso. Lá vamos nós. Então, agora que o reproduzimos, colecionamos , movemos as cenas chave do trimer envelope. Agora, quando o
desbloqueamos, vemos nossa textura mudar. Obviamente, só estou usando uma chave aqui, mas você está mudando isso para o que quiser que sua imagem desbloqueada seja. Então você pode realmente usar imagens de desbloqueio como essa. Ou você pode simplesmente não usá-lo em apenas Q de graça. De qualquer forma, isso depende de você. Eu sou magro se Q livre porque eu não tenho ele desbloquear imagem. E se você quisesse, você poderia usar os dois ao mesmo tempo. Então você faz se desbloquear imagem é igual, certo, se não for nada, é uma string vazia. Então podemos fazer o nosso auto dot Q livre. E se não, então é onde podemos passar em nossas seções aqui. Então, se você quiser usar ambos, essa é outra maneira que você pode fazer dessa maneira. Eu você só pode usar a imagem de desbloqueio em fechaduras que você deseja. T é a imagem à direita. Agora, da mesma forma, também podemos usar criar textura lá para criar sua imagem. Ou se você quiser usar bloqueios diferentes,
em seguida, fazer apenas para explorar, escrever var lock, e apenas passar, passar isso em como uma string. E agora nós clicamos, você pode apenas trazer sua fechadura, como mola na fechadura do porão. Eu sempre clico e arrasto para dentro Mas se você quiser, você pode apenas trazê-lo assim, apenas assim. E, em seguida, você está pronto função. Você pode criar textura a partir do nosso bloqueio. Se eu fosse me livrar dele daqui. E fazer auto-dot Tags Texture. Então, se todos vocês torná-lo um pouco mais personalizável ainda mais adiante, você pode apenas fazer algo assim e você pode simplesmente passá-lo. Mesma coisa. Quando abrimos
isto, vai parecer exactamente o mesmo. Você não deve ter nenhum problema. Claro, meus dados estão atrapalhando de novo porque já temos as coisas desbloqueadas. Deve ser a última vez que fazemos isso. Mas você pode ver agora nós temos visualmente exatamente o mesmo ícone, exatamente a mesma coisa aqui. Então, isso é completamente com você. Qual rota você deseja ir, se você deseja usar o que você deseja usar
a imagem de desbloqueio ou Q3 ou uma combinação de usar ambos. E novamente com o seu registro, se você quiser usar um, um argumento lá para sua textura. Como você vê quando puxamos para dentro, podemos mudar a textura aqui quando você puxa são anotados. Então, não é completamente necessário. Mas se você quiser fazer isso através de código, você pode fazê-lo dessa maneira. Novamente, completamente até você e como você quer fazer isso. Só mais um pouco de opções para você passar e decidir como você quer fazer isso. Pessoalmente. Eu só vou trazer isso. Eu não tenho Maya recente para não fazer isso dessa maneira. Então eu posso remover os dois eu mesmo, assim como a nossa fechadura lá. Tudo bem. Então isso vai fazer isso para o, para todas as suas opções aqui. Se você não sabe como reproduzir áudio, então eu vou fazer um vídeo rápido no próximo é mostrar-lhe como reproduzir
áudio que você atribuiu a ele para o seu desbloqueio e coisas assim. Se você queria fazer isso ou se você queria tocar alguma música em segundo plano enquanto você é jogadores apenas olhando ao redor.
18. Como adicionar áudio: Muito bem, bem-vindos a todos. E neste vídeo que vamos fazer, eu vou mostrar a vocês como reproduzir algum áudio para o jogo. Eu não tenho nenhum áudio na mão para este projeto. Mas se você tiver algum, então você provavelmente irá em frente e terá um outro ano de pasta. Crie um áudio chamado e vá em frente e mantenha todos os seus arquivos lá. Como 3.3, você pode trazer um arquivo MP3 se quiser. Mas você vai fazer, por exemplo, aqui na nossa primeira ou na nossa cena aqui? Se você quiser que o áudio seja reproduzido o tempo todo, então podemos simplesmente ir em frente e adicionar um player de fluxo de áudio. Você não precisa D porque não estamos fazendo, não precisamos de nada direcional, como algo fora da tela ou qualquer coisa. Então podemos fazer um reprodutor de áudio. Você pode nomeá-lo como quiser e pegar seu arquivo de áudio. Eu apenas arrastá-lo sobre o fluxo e certifique-se de testá-lo e ajustar o seu volume dB aqui. Às vezes as coisas são muito mais altas do que você pensa. E tudo o que você quer fazer se você quiser que isso toque, é como uma música de fundo. Você pode apenas configurá-lo para reprodução automática e, em seguida, ele vai começar a jogar assim que sua coisa carregar para cima. Essa é uma maneira que você pode fazer isso. E se você quiser fazer isso na forma de um som de desbloqueio ou algo assim, então nós podemos fazer isso dentro de você poderia fazer isso dentro da própria fechadura, certo? Você pode criar uma camada de camarão de áudio e arrastar em seu som de desbloqueio, um gesto para que seu áudio, seu volume decibine o DB. E então quando estamos causando desbloqueio aqui. Então, quando desbloquearmos logo depois de
salvarmos os dados aqui, podemos vir aqui e pegar sua camada de camarão de áudio, seja lá o que você chamou, um para dizer ponto ,
tocar, assim. E não precisamos passar nada para isso, e vai tocar nosso som de desbloqueio. Então, ou Scott pegue seu áudio e coloque na seção de fluxo aqui. Neste caso, para o nosso áudio de desbloqueio. Ou aqui no nosso piquenique. Novamente, áudio cone, camada de camarão de áudio. Pegue sua música de fundo que você deseja reproduzir para esta área e arrastada para a seção de fluxo. E, em seguida, basta ativar a reprodução automática. E lembre-se de definir seus decibéis de volume para ter certeza de que não é muito alto nos anos do jogador. Então é assim que você configuraria o uso de áudio para isso. É muito simples. Novamente, eu não tenho nenhum áudio para isso, mas basta pegar seu áudio, arrastá-lo para dentro, soltá-lo. Eu apertei Ir em frente para autoplay. Então, por favor, desculpa para começar a corda. E depois na fechadura, crie um reprodutor de fluxo de áudio novamente. Pegue seu som de desbloqueio, solte-o, ajuste seus decibéis de volume e seu script de bloqueio. Quando você chamar desbloquear, vá em frente e apenas toque o áudio. Então, se você tem áudio para o seu jogo, basta ir em frente e movê-lo acidentalmente. Mas se você tem áudio para o seu jogo, seja música de fundo para tocar constantemente ou se é uma zona azarada, é assim que você faria. Eu vou apenas ir em frente e remover isso já que eu não tenho nenhum apenas para remover qualquer potencial para quaisquer problemas possíveis. Olá. Não é o que eu queria vir aqui, apagar isso, e salvar tudo. Tudo bem, então lá vai você. Temos roteiros reutilizáveis. Você pode pular entre áreas. Aí está o meu experimento de textura. Tudo bem. Então temos mapas, podemos saltar entre áreas. Você tem objetos colecionáveis. Você pode simplesmente colocar esse script em qualquer objeto que você queira ser colecionável. Temos objetos arrastáveis de novo. E as coisas que você quer arrastar, você pode ir em frente e apenas colocar seu script arrastável nele. Temos as chaves para que possamos recolher. E isso é emparelhado com nossas fechaduras. Então podemos passar por uma chave e desbloquear o sistema. Temos nosso mapeado para transferência entre diferentes áreas. Nós removemos todos os objetos, bem como quaisquer chaves de nossa cena que já foram coletadas, e quaisquer chaves que já foram usadas para destrancar portas. E estamos guardando e carregando nossos dados. Muito bem, fizemos muito neste curso, e espero que tenha aprendido muito. Mas lá está o seu núcleo básico para criar um tipo de objeto oculto jogo.