seu projeto, todo o resto se torna uma pilha de informacoes sem sentido no momento em que voce for programar qualquer coisa com a Unity.5. Trabalhando com Classes, Helper Functions e codigo Frame-DependenteUm fato curioso sobre trabalhar com a Unity e que voce vai precisar utilizar classes em casos relativamente raros em seu projeto, ao contrario de muitas outras engines ou plataformas existentes por ai. Isso se da pelo fato de que a Unity e tao bem projetada que qualquer coisa que voce queira criar provavelmente ja se encaixa como descendente de alguma classe ja existente na Unity entao a criacao de classes em seu game raramente se tornara uma rotina.Apesar disso, existem casos em que a criacao de classes sera extremamente util e tornara seu script muito mais maleavel e poderoso. O uso de classes tambem pode facilitar a leitura de seu codigo, tornando sua escrita mais elegante e muito bem organizada de modo que em um trabalho feito por uma equipe, a criacao de co-rotinas por outro programador fica muito agradavel de forma que seu colega nao precisa realmente dominar totalmente todos os pormenores da classe que voce escreveu. Helper functions, co-rotinas, sao inicialmente uma ferramenta chave para manter a organizacao de seu codigo, tornando-o ainda mais legivel que de costume e ajuda a facilitar a procura por bugs que cedo ou tarde inevitavelmente acabam surgindo durante sua producao. Outra caracteristica importante sobre co-rotinas e que elas abrem um outro leque de possibilidades como as tao importantes funcoes dependentes de tempo ou frame-rate.5.1 ClassesA Unity ja disponibiliza uma lista robusta de classes que voce usa e abusa, mas e interessante ter a possibilidade de criar classes customizadas inteiramente dedicadas a um tipo especifico de objeto em seu game, por exemplo, uma classe dedicada somente ao controle do seu personagem, outra classe dedicada somente a execucao de animacoes do personagem, outra classe que ativa triggers que otimizam a interatividade de seu personagem com o ambiente, etc.5.2 Helper FunctionsA primeira funcionalidade de importancia real que voce vai encontrar para o uso obrigatorio deste tipo de funcoes e a possibilidade de utilizar, a partir dessas co-rotinas, funcoes que derivam da classe Yield. Funcoes do tipo Yield nao podem ser chamadas de loops principais como Update() por que elas tem como caracteristica interromper a execucao do loop, veja bem, do loop que chama a funcao, nao seu programa como um todo.Essa distincao pouco comum entre funcoes na Unity proporciona uma maleabilidade incrivel na manipulacao de seu codigo. Voce pode interromper partes da execucao de um loop enquanto que outra parte do mesmo loop pode continuar sendo executada normalmente. Tal funcionalidade e muito util para muitas situacoes que possam surgir, mas com certeza este tipo de funcao e largamente utilizado para um controle preciso e refinamento de animacoes e timing que voce ira se deparar cedo ou tarde.5.3 Codigo Frame-DependenteA Unity ja disponibiliza funcoes plenas para manipulacao e checagem de tempo que estao sempre a disposicao para lhe dar suporte no momento em que precisar. Se voce nao esta acostumado a utilizar o conceito de