Desenvolvendo com Unity3D

O Unity3D é uma engine para desenvolvimento de games que tem como principais características: a fácil adaptação e rápido desenvolvimento. Ele tem uma série de bibliotecas que auxiliam muito na hora de programar, além de dar liberdade ao desenvolvedor, já que é possível programar em Boo, C# ou Javascript.

———————

O Unity3D trabalha com programação e parte visual integrada, para codificação ele utiliza o MonoDevelop como IDE,  e se integra muito bem com softwares de desenvolvimento 3D, como o Maya. É possível acessar um modelo a partir do Unity3D, salvar no Maya e já ter o modelo atualizado no seu projeto.

Pra quem é programador é importante saber como a mágica do 3D acontece :-)

Bom, tudo começa num programa de modelagem 3D, onde você pode exportar o modelo como FBX ou abrir o arquivo nativo direto no Unity3D, como o *.3DS (3D Max) ou *.mb/*.ma (Maya).

O modelo é dividido em algumas partes:

  • O Mesh
    • A forma do objeto, esfera, cubo, arma, carro, etc.
  • O Shader
    • É o responsável em como a luz vai interagir com o objeto. Essa parte é feita com programação ShaderLabs.
  • O Material
    • O shader é aplicado no Material, e nele são definidas as propriedades, como por exemplo, qual cor será utilizado, qual textura será utilizada e outros dados que podem ser variáveis no Shader.
  • A Textura
    • A textura principal é a “pele” do objeto, mas existem outras texturas como o Normal: mapa que interfere na influência de Luz na forma, dando a impressão de profundidade e relevo.

———————

Já na parte de programação o Unity3D se mostra bem versátil, mesmo sendo possível programar em 3 linguagens o Unity3D tem uma estrutura bem consistente, e torna a escrita em qualquer uma das linguagens bem simplificada.

Boo é a linguagem nativa do Unity, mas pouca gente usa. Já entre o Javascript e o C# vai um pouco de gosto, mas existem 2 pontos importantes:

  • O Javascript por ser mais leve, teoricamente é mais rápido.
  • Mas o C# é uma linguagem mais robusta, e se comunica melhor com DLL feitas em C/C++;

O Unity3D tem suas ações baseadas em Eventos, começando a maioria de suas funções nativas com On ou que remetem a Eventos como:

  • void Awake()
    • é a primeira a ser executada no escopo do script.
  • void Start()
    • vem logo após a Awake().
  • void Update()
    • essa funcao é o CORE da maioria dos scripts, ela é executada a cada ciclo de clock, aqui ficam as funções com física, movimento, etc.
  • void AfterUpdate()
    • funcao chamda após a Update().
  • void OnGUI()
    • essa função também é chamada a cada ciclo de clock, mas ela é a responsável em desenhar as GUI (Graphic User Interface), ou seja, os menus e ítens 2D.
    • Tudo que é desenhado por GUI fica numa layer própria, por cima dos elementos em 3D, e são colocados na tela com apenas X e Y sem se preocupar com a profundidade.

E claro que existem muitas outras, como OnMouseDownOnMouseUp, e dá pra ver a lista completa aqui: http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.html

———————

Esse é outro ponto muito forte do Unity3D, comunidade e documentação, existem 3 fontes oficias para referência:

Bom, that’s all folks!

Categoria: Labs.
Tags: , , .

Sobre Maycon Souza

Diretor de Tecnologia da Morphy, entusiasta de novas tecnologias movido pela superação dos desafios!

Deixe um Comentário

Os campos com * são obrigatórios. Seu e-mail não será divulgado.