SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Como Faz pra barra de vida aparecer de uma cena pra outra?
Unity + Photon 2
[TUTORIAL] Sistema de vida,morte,dano
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
[RESOLVIDO] Problema com cenário infinito ou algum tipo de bug na Unity?
iniciar jogo com uma cena desativada e ativá-la ao colidir com bloco desativando as outras
Unity Remota 5, sem reação.
Procuro Equipe Para Criação de Jogo [PAGO]
Procuro Map Designer [PAGO $$$] (criador de mapas)
[PROJETO MOBILE] Defeat the Illuminatis
[TUTORIAL] Sistema de Oficina de Carros
[RESOLVIDO] Unity 2018 - Bug com a iluminação da Spotlight nos Objetos
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
[TUTORIAL] Barra de VIDA / HP contínua
Salvar e carregar dados json player pref
Blander ao juntar algumas partes ficam mais escuro
Problema com Esqueleto do personagem
{Possível Projeto para Unity} Buscando membros para formar uma Equipe...
[TUTORIAL] Como spawnar inimigos [Tutorial simples]
Não consigo fazer o box collider descer junto com o personagem.
BUG UNITY 3D ROSA A SCENE E GAME
Sistema de Grau Realista - Jogo de Moto
(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.
Programação Unity android 2D
(UNITY) Erro ao compilar a Build Android
Erro na sincronização dos player no Photon
[TUTORIAL] Barra de vida usando a UI da Unity(Slider)
[Projeto] Line Battle
[TUTORIAL] Desbloqueio e Escolha de Personagens.
[RESOLVIDO] Problema com o navmesh agent
[RESOLVIDO] Registro cadrastando uma vez?
Vaga de modelador 3D, com remuneração...
Problemas com Colisores
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Como criar Atlas de textura com modelos exportados do Sketchup?
Unity - Sistema de Pagamento
[RESOLVIDO] iniciar áudio ao passar por uma área da cena
[RESOLVIDO] como envia asset para asset store
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
codigo não deleta prefab e não respeita o if
[TUTORIAL] Filtros de áudio para AudioListner (Low pass filter, High pass filter, etc)
[____CICLO DE TRABALHO DA UNITY____]
Meu jogo não está abrindo em outro PC
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Discord para desenvolvimento de jogos
FAB in WWII (Novo jogo na Play Storee é Free :D)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de PORTAS e CHAVES
Criar uma Array ou List com as resoluções suportadas
Alguem traz esse tutorial pro forum?
Realistic fps prefab tenho esses erros ao tentar colocar um script de entrar sair do carro
[RESOLVIDO] Alguem pode me ajudar? tenho esse erro aqui em um script
[RESOLVIDO] Personagem 2d batendo na borda e voando.
[RESOLVIDO] Não consigo usar o Sphere collider.
[RESOLVIDO] Como usa o UI.Text do unity?
Como criar botão de nova tentativa
[RESOLVIDO] Duvida em Jogo de tiro 2D
[RESOLVIDO] duvida com PlayerPrefs
Iniciar animação em determinado frame
Sistema De Troca De Armas 2D
[TUTORIAL] Script de arma completo! [FREE]
[TUTORIAL] Ordenar valores de uma array[] em ordem CRESCENTE OU DECRESCENTE
Meu jogo de runner em primeira pessoa !
[RESOLVIDO] Timer pra mudar de cena na unity 2018
Atualizar Build
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Como usar Vector3.Angles para detectar que algo está na frente de outro objeto?
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão?
Script nao funciona
Como desativar scripts em objetos distantes
[RESOLVIDO] Bug Da Unity ?
[AULA] HTML - Aula 1: Introdução
Raycast
[TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
Problema com a unity ads
como eu faço para a camera orbitar um objeto atraves de um joystick?????
XML, suporte e utilização.
Arrastar objetos em plano 2D (ArrastarT).
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Participe da Game Jam - Jaaj do canal Amdré Young!
Criar sistema de arrastar e soltar objetos em determinado lugar
AWM Champions I
[RESOLVIDO] Como verificar se o objeto é diferente de null
COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
[TUTORIAL] Snake com Unity + C#
Sobre Som (Ouvir som do sistema , duas caixas de som ... )
Configurar NPCs
[RESOLVIDO] Script Carta
[TUTORIAL] Texto Legenda Character Por Character Para Uso Básico
Ajuda com script movimento por Grid Tile no Navmesh
[Devlog] Lost in the world 05/10
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
inimigo nao persegue player
[RESOLVIDO] Build setting não entra
[RESOLVIDO] Player Sair Da animaçao
[RESOLVIDO] Erro colider
Dúvida sobre Resolução
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ENQUETE____] Eleições para presidente 2018
Hoje à(s) 9:49 am
Hoje à(s) 9:19 am
Ontem à(s) 11:13 pm
Ontem à(s) 10:57 pm
Ontem à(s) 10:24 pm
Ontem à(s) 8:00 pm
Ontem à(s) 7:51 pm
Ontem à(s) 7:23 pm
Ontem à(s) 7:18 pm
Qui Out 18, 2018 7:17 pm
Qui Out 18, 2018 7:09 pm
Qui Out 18, 2018 4:52 pm
Qui Out 18, 2018 2:57 pm
Qui Out 18, 2018 10:36 am
Qui Out 18, 2018 9:49 am
Qua Out 17, 2018 11:45 pm
Qua Out 17, 2018 11:17 pm
Qua Out 17, 2018 10:14 pm
Qua Out 17, 2018 9:49 pm
Qua Out 17, 2018 8:32 pm
Qua Out 17, 2018 5:18 pm
Qua Out 17, 2018 5:16 pm
Qua Out 17, 2018 5:13 pm
Qua Out 17, 2018 5:13 pm
Qua Out 17, 2018 5:10 pm
Qua Out 17, 2018 4:35 pm
Qua Out 17, 2018 3:13 pm
Qua Out 17, 2018 7:28 am
Ter Out 16, 2018 3:34 pm
Ter Out 16, 2018 12:41 pm
Ter Out 16, 2018 11:48 am
Seg Out 15, 2018 5:34 pm
Seg Out 15, 2018 5:03 pm
Seg Out 15, 2018 2:46 pm
Seg Out 15, 2018 1:19 pm
Seg Out 15, 2018 12:56 pm
Seg Out 15, 2018 11:34 am
Seg Out 15, 2018 6:17 am
Seg Out 15, 2018 12:30 am
Seg Out 15, 2018 12:18 am
Dom Out 14, 2018 12:52 am
Sab Out 13, 2018 9:08 pm
Sab Out 13, 2018 5:24 pm
Sab Out 13, 2018 4:00 pm
Sex Out 12, 2018 6:00 pm
Sex Out 12, 2018 2:56 pm
Sex Out 12, 2018 2:55 pm
Sex Out 12, 2018 2:42 pm
Qui Out 11, 2018 8:59 pm
Qui Out 11, 2018 8:32 pm
Qui Out 11, 2018 3:09 pm
Qui Out 11, 2018 2:32 pm
Qui Out 11, 2018 12:15 pm
Qui Out 11, 2018 11:35 am
Qui Out 11, 2018 10:50 am
Qui Out 11, 2018 8:24 am
Qua Out 10, 2018 11:31 pm
Qua Out 10, 2018 10:43 pm
Qua Out 10, 2018 8:22 pm
Qua Out 10, 2018 4:53 pm
Qua Out 10, 2018 4:44 pm
Qua Out 10, 2018 3:48 pm
Qua Out 10, 2018 12:40 pm
Ter Out 09, 2018 9:51 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:10 pm
Ter Out 09, 2018 8:09 pm
Ter Out 09, 2018 7:38 pm
Ter Out 09, 2018 2:55 pm
Seg Out 08, 2018 6:13 pm
Seg Out 08, 2018 4:40 pm
Seg Out 08, 2018 2:39 pm
Seg Out 08, 2018 12:52 pm
Seg Out 08, 2018 12:16 pm
Seg Out 08, 2018 10:33 am
Dom Out 07, 2018 1:59 pm
Dom Out 07, 2018 11:53 am
Dom Out 07, 2018 10:53 am
Sab Out 06, 2018 11:14 pm
Sab Out 06, 2018 10:55 pm
Sab Out 06, 2018 8:50 pm
Sab Out 06, 2018 8:41 pm
Sab Out 06, 2018 2:21 pm
Sab Out 06, 2018 1:33 pm
Sab Out 06, 2018 2:04 am
Sex Out 05, 2018 8:22 pm
Sex Out 05, 2018 7:39 pm
Sex Out 05, 2018 6:35 pm
Sex Out 05, 2018 11:27 am
Sex Out 05, 2018 11:22 am
Sex Out 05, 2018 9:35 am
Sex Out 05, 2018 12:53 am
Qui Out 04, 2018 11:40 pm
Qui Out 04, 2018 10:43 pm
Qui Out 04, 2018 6:23 pm
Qui Out 04, 2018 3:36 pm
Qui Out 04, 2018 3:12 pm
Qui Out 04, 2018 3:11 pm
francisco barroso
hao3726
francisco barroso
galil
FabioBRPA
MarcosSchultz
francisco barroso
SoullSec
SoullSec
dstaroski
leandrospp7
CaerHunter
Mourao
francisco barroso
dstaroski
DominicDK
DominicDK
NoctisLucis
francisco barroso
MayLeone
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
francisco barroso
hao3726
dstaroski
dstaroski
ismarspn
Jmspp
Callyde Jr
igorobm
conceptfac
Dom3000
Isabela
Callyde Jr
Daniel Dória
diegopds
MarcosSchultz
igorobm
MarcosSchultz
MarcosSchultz
Flávio
francisco barroso
SuperGamer
SoullSec
SoullSec
SoullSec
Flávio
francisco barroso
Samuelostgamer
Samuelostgamer
gurgelg752
luansantos
guimaraf
theus.mors
TecnoGames
Eduardoro39
QueriaStarMorto
QueriaStarMorto
mecjo
NyanHeavyBR
CaioItz
RodriGO3477
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
FelipeSouza11
FelipeSouza11
QueriaStarMorto
Tegh
Jmspp
Callyde Jr
Jmspp
Gabryellx007
Tegh
Tegh
SuperGamer
Luizdanhp
MarcosSchultz
TioUV
QueriaStarMorto
KAYKETHEO27
NKKF
MarcosSchultz
Callyde Jr
francisco barroso
FelipeSouza11
Nowsfeky
Mateus2583
FelipeSouza11
Callyde Jr
Daniel Dória
marcosdanielnerydasilva
francisco barroso
NKKF
dstaroski
dstaroski

[TUTORIAL] Snake com Unity + C#

Ir em baixo

TUTORIAL [TUTORIAL] Snake com Unity + C#

Mensagem por MayLeone em Sab Out 06, 2018 11:41 am

Introdução:
No tutorial de hoje de nossa série "Remakes na Unity", nós iremos recriar o tão famigerado "Jogo da cobrinha", também conhecido como "Snake".
Para estes tutorial nós iremos explorar a função "Instantiate" e os Vectors, bem como iremos nos utilizar de laços de repetições e lists.

Preparando o projeto:
Abra a engine Unity num novo projeto 3D e chame-o de "Snake Game".
Faça com que a janela da cena fique em modo "2D", enquanto a janela da cena tenha resolução 3:2, de preferência com o layout 2 por 3 para melhor visualização:



Após fazer isso, selecione a câmera através da janela do Inspector e faça com que a posição dela fique zero em X e Y e -30 em Z, também selecione a propriedade "Clear Flags" e coloque para "Solid Color", selecionando a cor preta na propriedade "Background":




Agora vá em File >> Save Scenes para salvar a cena, após fazer isso vá novamente para File >> Build Settings e tenha certeza de que sua cena está na janela:




Feche esta tela e agora vá para Window >> Lighting >> Settings >> Desmarque a opção "Auto Generate" >> Clique em "Generate Lighting" para que possamos buildar a iluminação e não termos divergências na mesma quando carregarmos a cena. Após realizar esse processo, feche a janela.

Criando o cenário:
Para criarmos o pequeno cenário do jogo, crie um novo cubo na cena e chame-o de "Top". Esse cubo irá representar a borda superior do cenário. Redimensione este cubo através do eixo X de forma que ele seja realmente uma borda e posicione-o no mundo no local que desejar.
Caso a posição Y deste objeto seja um valor flutuante (ex: 8.93) arredonde o valor para um número inteiro (ex: 9)


Agora crie mais três cubos em cena com os nomes: Bottom, Left e Right, escalonando-os para que se tornem as bordas e ajustando os mesmos nas posições com valores inteiros (Right e Left o valor deve ser arredondado em X, enquanto Bottom em Y). Faça isto até ter algo mais ou menos como isto:


Crie mais um novo cubo em cena, mas agora deixe-o com os valores padrões e torne-o prefab. Crie também uma esfera e também faça com que a mesma se torne prefab.
O que iremos fazer é que as partes da cobrinha serão os cubos padrões da Unity, enquanto a "food" (aquele item coletável do jogo) seja a esfera. 
Como iremos instanciá-los em tempo de execução, precisamos ter prefabs de ambos.

Declarando as variáveis:
Crie um novo C# script com o nome de "Snake" e já inicie o mesmo fazendo referência à biblioteca "UnityEngine.SceneManagement".
Após fazer isso, iremos declarar as nossas variáveis públicas:



As variáveis do tipo "GameObject" irão armazenar as referências dos prefabs da cobrinha e da comida respectivamente, enquanto os dois Vector2 irão armazenar os valores das bordas entre máximo e um valor mínimo, já o GUIStyle irá definir o estilo da Label que irá mostrar os pontos do jogador, e por fim, xUI e yUI irão posicionar esta label dentro da GUI através das coordenadas na tela.
Todas essas variáveis serão manipuladas através do Inspector, por esta razão devem ser públicas.

Agora vamos declarar as variáveis privadas:




A variável "foodClone" irá armazenar a instância da comida para que possamos manipulá-la em nosso código, depois nós teremos uma List do tipo "GameObject" chamada "body" que irá então armazenar os objetos que farão parte do corpo da cobrinha, assim poderemos fazer com que todos se movimentem e verifiquem colisões, já o "snakeDirection" irá definir a direção para onde a cobrinha irá se mover, enquanto o enum "Directions" irá limitar as 4 direções possíveis, para evitar que a cobrinha não se movimente de forma errada e cause erros. Para controlar esse movimento, temos uma variável do tipo "Directions" que irá armazenar a direção corrente da cobrinha.
Enquanto isto, temos duas variáveis booleanas: uma controla o momento em que a cobrinha poderá se mover, enquanto a outra controlar o fluxo do jogo, checando se temos um game over ou não, por fim, as variáveis numéricas irão armazenar respectivamente os pontos do jogador e o tempo de espera de cada movimento que a cobrinha dará.

Iniciando o jogo:
Após declarar todas as variáveis corretamente, vá ao método "Start" e inicie as variáveis conforme a imagem abaixo:



Iremos fazer com que a cobrinha inicialmente seja posicionada para a direita e se movimente para esta orientação, por isso que iniciamos "snakeDirections" e "direction" com os valores em "right".
Também fizemos com que a variável "canMove" receba true inicialmente, possibilitando a cobrinha de dar o primeiro movimento, a variável "gameOver" em false, pois não é o fim do jogo, enquanto fizemos com que o jogador tenha zero pontos no score e que a velocidade da cobrinha seja 0.2, ou seja, a cada 0.2 segundos ela vai se movimentar.

Após inicializarmos as variáveis, iremos instanciar um corpo inicial para a cobrinha com alguns cubos (podemos colocar uns 5, por exemplo).
Para fazer isto, iremos criar um laço de repetição que rode 5 vezes e que adicione à list "body" as instancias do prefab "snake" através da função "Instantiate". Já com relação à posição, faça com que iniciem em Vector2.left para que possam ser instanciados os cubos um atrás do outro (fazendo com que a cabeça da cobrinha seja o elemento na posição zero da list) e multiplicando esse valor pelo contador do laço:



Salve o script (CTRL+S) e adicione-o na câmera.
Através do inspector relacione os prefabs "snake" como o cubo e a esfera como "food".
Também defina as bordas máximas e mínimas do cenário, tendo como referência as posições de Top, Bottom, Right e Left, sendo a posição X de Right a borda máxima em X e a posição Y de Top a borda máxima em Y. A posição X de Left será referente ao borda mínima em X e a posição Y de Bottom será a borda mínima em Y:


Agora teste o jogo e veja que o corpo da cobrinha foi instanciado dentro da tela do jogo:



Gerando a comida:
Volte para o script porque agora faremos a função que vai instanciar a comida.
Crie a função sem retorno com o nome de "GenerateFood" e faça com que duas variáveis locais, uma chamada "X" e outra chamada "Y" recebam um valor aleatório (através da Classe Random) entre a borda mínima e a borda máxima, relativas à coordenada referente. Também arredonde esses valores com Mathf.Round para que os mesmos não sejam gerados como números decimais.
Após isso, instancie dentro da variável "foodClone" o prefab da esfera ('food') nas posições de X e Y que foram geradas aleatoriamente.
Agora devemos verificar se a comida foi instanciada em algum local válido, ou seja, onde o corpo da cobrinha não está atualmente e também se foi gerada dentro das extremidades das bordas, ou seja, em locais inacessíveis. 
Se for o caso de alguma dessas ocorrências, nós iremos destruir a referência dentro de foodClone e iremos recursivamente chamar a função GenerateFood para ela gerar uma nova posição correta para a comida:



Agora chame esta função dentro do Start (após o laço) para gerar a primeira comida do jogo, e veja que ao testar, a mesma nunca é instanciada dentro das bordas e nem nas posições dos cubos que compõem a cobrinha, exemplo:



Verificando Inputs do teclado:
Agora faremos a função que irá verificar quais teclas do teclado foram pressionadas para movimentar a cobrinha.
Para isto, crie uma função sem retorno com o nome de "CheckInput" e crie as condições referentes às teclas: direita, esquerda, cima e baixo. Essas condições devem conter o input da tecla pressionada e uma validação da direção, que só poderá movimentar a cobrinha para a direção do input se a direção atual da cobrinha não é inversa, por exemplo: não poder movimentar a cobrinha para a direita se ela estiver virada para a esquerda e vice-versa.
Dentro desta condição, mude a direção da cobrinha através do Vector3 e o valor da variável direction:


Agora dentro da função Update, chame este método com a condição de que a variável "gameOver" deve estar false:



Movimentando a cobrinha:
Mas por enquanto nós apenas estamos mudando a direção da cobrinha de acordo com o input do teclado, para que possamos de fato movimentar a cobrinha precisamos criar uma função.
Crie um método chamado "Move" sem retorno.
Para que possamos fazer com que o corpo da cobrinha se movimente por completo, precisamos utilizar um laço de repetição que percorra a list "body" para podermos manipular o transform.position de todos os cubos que compõem a cobrinha.
Já que todos os cubos seguem a movimentação do cubo à sua frente, poderíamos fazer com que o elemento da list "body" na posição atual do laço receba a posição do cubo à sua frente (elemento antecessor na list), mas para isso, precisamos saber a posição anterior desse elemento antes que ele se movimente, porém quando o laço receber o incremento, o cubo antecessor do elemento atual já vai ter se movido e perderemos a posição anterior dele.
Para evitar este problema, podemos fazer com que o laço inicie do último elemento da list e vá percorrendo a mesma de trás pra frente, assim movimenta-se o último cubo para a posição do penúltimo, o penúltimo pra posição do anti-penúltimo, e assim sucessivamente, até chegar no cubo na posição 1 da list (antes da cabeça), ele se movimenta para onde a cabeça estava, e a cabeça é a única que vai se movimentar de acordo com o input do teclado, então essa função ficaria asim:



Agora, se esta função for chamada dentro do Update a cobrinha vai se movimentar muito rápido, por isso devemos ter um tempo de espera para que essa função seja chamada, ou seja, a cada x segundos chamar a movimentação.
Podemos utilizar um IEnumerator para controlar esse tempo de espera. Como esta corrotina será chamada dentro do Update, devemos ter uma variável de controle que irá definir quando a corrotina poderá ser chamada no Update, no caso "canMove".
O IEnumerator deve estar assim:



Então à cada 0.2 segundos chamaremos a função de movimentação, pois definimos em "timeTick" este tempo.
Vá para  Update e dentro da condição de gameOver estar false, crie uma outra condição verificando se "canMove" é true e chame a corrotina "Tick":


Teste o jogo e veja que agora você pode movimentar a cobrinha pela cena e que o resto do corpo segue a direção do input do teclado.

Colisão com a comida:
Agora que terminamos de desenvolver a mecânica de movimentação, vamos criar uma função que verifique se a cabeça da cobrinha colidiu com a comida para que possamos ganhar uma nova parte do corpo e aumentar os pontos:


Aqui nós estamos verificando se as posições de foodClone e da cabeça da cobrinha são iguais e caso sim, incrementa-se a variável "score", adiciona uma nova instância do prefab da cobrinha na posição do último elemento da list, destrói a comida e depois gera uma nova, chamando a função "Generate food".
Chame essa função (CheckFood) dentro do Update após a chamada de "CheckInput".
Jogue e perceba que cada vez que coleta-se a esfera, a cobrinha vai crescendo:


Verificando fim de jogo:
Você pode notar que o jogo já está quase completo, estamos precisamos de uma função que verifique se a cabeça da cobra bateu em alguma parte dela mesma ou se ela bateu em alguma das bordas, fazendo com que o jogo acabe.
Então vamos lá, crie essa função sem retorno com o nome de "CheckDeath" e faça com que um laço de repetição percorra toda a list do corpo da cobrinha (com exceção da própria cabeça e do cubo atrás da cabeça) verificando se a cabeça da cobra está uma unidade à frente (colidiu pelos lados) com algum cubo da list, para que possamos verificar se a cabeça colidiu com o próprio corpo.
Para verificar se colidiu uma unidade à frente, subtraia a posição atual do cubo com "snakeDirection".
Caso a cobra colida com ela mesma, faça com que "gameOver" fique true:


Também crie a condição que verifica se a cabeça da cobrinha colidiu pelas bordas:


Chame essa função dentro do Update após "CheckFood".

GUI do jogo:
Vamos agora por fim criar a GUI do jogo, primeiro a label que irá mostrar os pontos do jogador, e depois um botão que aparece na cena quando "gameOver" for true:


Quando clicamos no botão de "Play again", a cena é recarregada e então o Start é chamado de novo e o jogo se reinicia.

Salve o script e vá para o inspector da câmera, e expanda as propriedades de "Style" e então configure a fonte que mostra os pontos da forma que quiser.
Eu apenas deixei a cor da fonte branca, em negrito e com tamanho 30. em xUI e yUI você posiciona essa label na tela da forma que achar melhor.

Final:
Agora teste o jogo: quando você colidir com as bordas ou consigo mesmo o jogo dará game over, e o botão para iniciar aparecerá na tela.
O resultado final será mais ou menos este:





Última edição por dstaroski em Sab Out 06, 2018 11:43 am, editado 1 vez(es) (Razão : Acrescentado o pré fixo [TUTORIAL])
avatar
MayLeone
ProgramadorMaster

Feminino PONTOS : 485
REPUTAÇÃO : 151
Áreas de atuação : Unity, Rpg Maker, Scratch, C#, C++, HTML, CSS, JS, MySQL, Blender
Respeito as regras :

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Snake com Unity + C#

Mensagem por dstaroski em Sab Out 06, 2018 11:42 am

Bom dia! o que que eu vou dizer, uma joia rara! Parabéns pela excelente aula!

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 3707
REPUTAÇÃO : 960
Idade : 29
Áreas de atuação : Téc. Hardware e Redes, Programação C#.

Respeito as regras :

Ver perfil do usuário https://gamejolt.com/games/defeattheilluminatis/347786

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Snake com Unity + C#

Mensagem por NKKF em Sab Out 06, 2018 1:33 pm

Aula top, vou até fazer um xDD
avatar
NKKF
ProgramadorMaster

Masculino PONTOS : 1991
REPUTAÇÃO : 405
Idade : 14
Áreas de atuação : Error 404 Not Found.
Respeito as regras :

Ver perfil do usuário http://www.projetounity.esy.es

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum