Tutorial: Desenvolvimento de Jogos com Unity 3D - PUC-Rio
Tutorial: Desenvolvimento de Jogos com Unity 3D - PUC-Rio
Tutorial: Desenvolvimento de Jogos com Unity 3D - PUC-Rio
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
VIII Brazilian Symposium on Games and Digital Entertainment <strong>Rio</strong> <strong>de</strong> Janeiro, RJ – Brazil, October, 8th-10th 2009<br />
A função print() é bastante útil quando se está <strong>de</strong>purando um script, mas não faz nada <strong>de</strong> útil <br />
em termos <strong>de</strong> jogabilida<strong>de</strong>. O código a seguir adiciona alguma funcionalida<strong>de</strong> ao objeto que <br />
contém o script: <br />
function Update () {<br />
transform.Rotate(0, 5*Time.<strong>de</strong>ltaTime, 0);<br />
}<br />
Para quem é novo em linguagens <strong>de</strong> script para jogos, o código po<strong>de</strong> parecer um pouco <br />
confuso. Alguns conceitos importantes que <strong>de</strong>vem ser aprendidos: <br />
1. function Update () {} é a sobrescrita do método Update, que será executado pela <strong>Unity</strong><strong>3D</strong> <br />
uma vez a cada frame; <br />
2. transform é uma referência ao <strong>com</strong>ponente Transform do Game Object em questão. <br />
3. Rotate() é um método existente no <strong>com</strong>ponente Transform; <br />
4. Os parâmetros <strong>de</strong>sse método representam os graus <strong>de</strong> rotação sobre cada um dos eixos <br />
em um espaço <strong>3D</strong>: X, Y, and Z. <br />
5. Time.<strong>de</strong>ltaTime é um atributo da classe Time que representa o tempo que passou (em <br />
segundos) <strong>de</strong>s<strong>de</strong> que o último Update ocorreu. Essa variável serve para garantir que o objeto <br />
em questão seja rotacionado na mesma velocida<strong>de</strong>, in<strong>de</strong>pen<strong>de</strong>nte da capacida<strong>de</strong> <strong>de</strong> <br />
processamento do <strong>com</strong>putador no qual o código será executado. Dessa forma, 5 * <br />
Time.<strong>de</strong>ltaTime representa 5 graus por segundo. <br />
Já existem referências <strong>com</strong>o essa para alguns <strong>com</strong>ponentes que são <strong>com</strong>uns <strong>de</strong> serem <br />
utilizados em objetos. Alguns dos mais importantes são: <br />
• transform ‐ representa o posicionamento, orientação e escala do objeto; <br />
• rigidbody ‐ representa o corpo rígido para o sub‐sistema <strong>de</strong> física (quando existir); <br />
• animation ‐ utilizado para acionar os ciclos <strong>de</strong> animação <strong>de</strong> um mo<strong>de</strong>lo criado em uma <br />
ferramenta <strong>de</strong> animação <strong>com</strong>o o <strong>3D</strong> Studio Max; <br />
• ren<strong>de</strong>rer ‐ <strong>com</strong>ponente encarregado da exibição <strong>de</strong> um objeto na cena; <br />
• audio ‐ fonte <strong>de</strong> efeito <strong>de</strong> áudio, vinculada a um objeto para incorporar posicionamento <br />
<strong>de</strong> áudio <strong>3D</strong>; <br />
• colli<strong>de</strong>r ‐ geometria <strong>de</strong> colisão para o subsistema <strong>de</strong> física ou para utilização <strong>com</strong>o Trigger. <br />
5.2 ‐ Acesso a outros <strong>com</strong>ponentes e troca <strong>de</strong> mensagens <br />
Entretanto, muitos outros <strong>com</strong>ponentes pré‐existentes, assim <strong>com</strong>o Scripts criados <br />
especificamente para cada jogo, não têm referências especiais incluídas. Para esses, é <br />
necessária alguma maneira <strong>de</strong> se obter uma referência em tempo <strong>de</strong> execução. Isso é feito <br />
através do método GetComponent() existente em qualquer script. Esse método po<strong>de</strong> ser usado <br />
para se obter a referência a qualquer <strong>com</strong>ponente vinculado ao objeto no qual o script em <br />
questão está acoplado (ou a qualquer objeto que se tenha uma referência em uma variável). O <br />
exemplo a seguir mostra <strong>com</strong>o obter a referência a um script chamado "Controlador": <br />
24