Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Opaaaa!! C#! Massa, né?! Eu acho. E vocês vão achar também, assim que começarem a entender melhor a linguagem. E vejam que não tem nada demais. Vamos entender beeeeem direitinho esse código inicial? É bem importante começar bem, sem dúvidas, para conseguir avançar sem problemas a medida que os scripts ficarem mais complicados. Não se encabulem de perguntar fórum a fora, Moodle a fora, mundo a fora, caso não entendam algo. O feio é levar a dúvida para casa! A não ser que vocês forem pesquisar em casa, né... Aí ok... Mas pesquisem, viu?! A listagem! Vamos deixar de besteirol e vamos a ela!
Nas linhas 1, 2 e 3 da listagem vemos a utilização da palavra chave Using. No C#, essa palavra tem uma função parecida com a Import, que vimos no Java. Ela indica quais as outras classes que estaremos utilizando em nosso arquivo. Nesse caso, são três e as três estão listadas lá. Tranquilo, né?!
Em seguida, na linha 5, temos a criação da classe em si. Assim como no Java, no C# trabalhamos com o conceito de classes, métodos, objetos, etc... é uma linguagem orientada a objetos, da mesma maneira! Não é estranho a qualquer um de vocês as palavras public e class, certo?! Em seguida, temos o nome da classe em si, que sempre tem que ter o mesmo nome do arquivo! PlayerController o script? PlayerController a classe! E aí em seguida temos o :. Esse : quer dizer que a classe deriva de outra. No Unity, em geral, as classes vão derivar da classe MonoBehaviour, como a nossa classe já está! Ok?! Garanta que você entendeu cada linha antes de ir para a próxima! E se tá achando easy, parabéns. Nem sempre é! :-P
Nas linhas 8 e 13 temos duas funções ou métodos que são também já incluídos por padrão nos scripts criados. Veja que a maneira como os métodos funcionam no C# são bem similares ao Java também:
Tipo_de_Retorno Nome_da_Função (Parâmetros) {}
Esses métodos já incluídos, no entanto, são métodos especiais, conhecidos como callbacks! Esses métodos possuem uma utilização bem específica e interessante que permitem a você interagir com diferentes etapas do seu jogo automaticamente, sem precisar alterar nenhum código do motor diretamente, por exemplo.
A primeira delas, a função Start(), é chamada assim que o objeto é criado. Quando sua inicialização é finalizada, o callback Start() é chamado. Ou seja, não é necessário a você fazer nenhuma chamada ao método Start()! O Unity fará essa chamada automaticamente assim que seu objeto terminar de ser criado. Daí que vem o nome de callback!
Já o segundo método é um mais repetitivo. O método Update é chamado uma vez a cada frame do seu jogo! Isso é excelente para algumas coisas... alguém aí consegue imaginar alguma? Dica: discutimos no começo da aula... Input! Lembra que conversamos mais cedo que o Input deve ser, idealmente, verificado uma vez a cada frame para responder ao usuário o mais rápido possível e dar aquela sensação gostosa de fluidez? Pois é! Se utilizarmos o método Update(), todo novo frame que for desenhado, o Unity chamará automaticamente essa função para que o objeto que possui o script que estamos escrevendo possa tomar alguma decisão para aquele frame!
Aí você pensa... "Poxa! Mas toooodo frame?! Isso não vai ficar pesado?!". Sim. Vai sim. "Mas e aí, professor?! Como faz?!" Bom, aí você não faz nada que seja pesado aqui, né?! Um jogo, hoje em dia, deve rodar a peeelo meeenos 30 FPS. Se você faz uma operação que demora mais de 30ms para concluir só em um objeto nesse método, já era. Então muito cuidado com o que vai ser feito no Update!!!
E com esses dois métodos a gente conclui nosso entendimento de um script básico, só com o esqueleto, em C#, no Unity. Simples, não?! É bem similar ao Java! Não esqueçam de fechar chaves, de colocar ; no final das linhas de código e tudo mais que vocês já aprenderam do Java! Viram que não tem mistério nenhum?! Vai dar tudo certo. Relax!
Vamos aproveitar agora e fazer uma atividade para ver se vocês já estão craques em scripts e C#?! Para executar um script, é só clicar no botão de play que já vínhamos utilizando anteriormente. Qualquer erro aparecerá na aba Console, que já vimos em aulas anteriores. Vamos lá?!
Versão 5.3 - Todos os Direitos reservados