Unity

A Unity é uma engine 3D popular entre desenvolvedores independentes. Suas principais atratividades são o baixo custo (comparada a outras soluções profissionais do mesmo calibre), a variedade de plataformas suportadas e a disponibilidade de um web player que roda direto da web os jogos feitos por ela.

Características

  • Multiplataforma - A versão 5 suporta: PC (Windows, windows store, MAC e Linux), videogames (PS3, PS4, PS Vita, Wii U, Xbox one XBox 360), mobile (IOS, Android, tizen, blackberry 10), tv (android tv e samsung smart tv) e wearable (oculus rift e gear vr)
  • Possui um WebPlayer
  • Possibilidade de se fazer programação com ela usando C#

Apesar desta engine ser comercial, há uma versão que pode ser baixada e usada gratuitamente. Alguns recursos da versão profissional não estão disponíveis para ela

  • Possibilidade de ler e modificar os pixels de uma textura
  • Efeitos de animação - Fade In, Fade out, etc.
  • Uso de vídeo em textura (MovieClip)

Render Pipelines

Nas versões mais novas, a Unity vem com o pipeline de render embutido, que com o tempo foi ganhando funcionalidades, mas que agora, com a tendência de cada vez mais migrar funcionalidades para a GPU não irá mais atualizado. Em contraste há dois pipelines de render que foram introduzidos com a Unity 2018.3, o URP e o HDRP.

URP

O Universal Render Pipeline (URP), é o pipeline destinado a ser o novo pipeline padrão da Unity para novos projetos. Ele era conhecido como LWRP (LightWeight Pipeline Render Pipeline) e tem como principal característica ser suportado em todas as plataformas que a Unity suporta. Ele tem requisitos mais modestos em comparação com o HDRP, mas ainda assim tem bastante capacidade de personalização e tem atualizações a cada versão da engine.

HDRP

O Pipeline de Render de Alta Definição (High Definition Render Pipeline) foi feito para suportar recursos mais modernos das APIs gráficas, e que, nem sempre estão disponíveis em todas as plataformas que a Unity Suporta. Seu principal pré-requisito é o suporte a APIs com mesmo conjunto de features que o DirectX 11 (Shader Model 5.0) ou superior. Ele também tem suporte experimental (preview) a ray tracing.

Render Pipelines Personalizados

Há a possibilidade de criação de um render pipeline personalizado na Unity. Essa abordagem permite uma personalização maior, ao custo de não se poder aproveitar alguns recursos já disponível que são próprios pra URP ou HDRP.

Comparação das versões gratuitas e Pro da Unity

(Retirado do site da Unity)

Características Unity Personal Unity Professional
Motor com todas as características sim sim
Livre de Royalties sim sim
Todas as plataformas (limitações se aplicam) sim sim
Splash Screen Customizável não sim
Unity Cloud Build Pro - 12 meses não sim
Unity Analytics Pro não sim
Licença para Equipe não sim
prioridade para o tratamento de bugs não sim
Relatório de desempenho do jogo não sim
Acesso a beta não sim
Patrocínio e Revenda Ilimitados não sim
Plataformas futuras inclusas não sim
Editor de pele profissional não sim
Loja de ativos nível 11 não sim
Características da comunidade Professional não sim
Acesso ao código fonte não pagando
Suporte Premium pagando pagando

Tutoriais

Funcionalidas das versões mais recentes

VFX Graph

VFX Graph é um recurso suportado no HDRP e parcialmente suportado no URP. Ele permite a criação de efeitos, usando uma abordagem de nós, sendo o resultado um sistema de partículas que roda na GPU

https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@12.0/manual/index.html Simples Tutorial do VFX Graph

Shader Graph

Permite a construção de shaders de forma visual usando a abordagem de nós. Recurso que está disponível nos pipelines de render URP e HDRP (mas não no embutido)

Timeline

xxxx

trechos de código

Lendo arquivos XML (útil para webplayer)

// lê sample.xml
TextAsset xmlContent = Resources.Load<TextAsset> ("XML/Test/sample");
 
if (xmlContent == null) {
    Application.ExternalCall( "sendScoreCallback", "Erro no carregar xml de teste");
    Debug.Log("Erro no carregar xml de teste");
}
 
var reader = new StringReader(xmlContent.text);

Atribuindo um pai a um GameObject via scripting

Para atribuit um GameObject pai para um GameObject, basta especificar o transform do GameObject pai como pai no transform do GameObject Filho;

// GameObject paiObject;
// GameObject filhoObject;
 
filhoObject.transform.parent = paiObject.transform;

Trabalhando com o objeto WWW

xxx

Unity + Shaders

http://unity3d.com/pt/learn/tutorials/topics/graphics/gentle-introduction-shaders?playlist=17102 (em inglês)

Links

http://unity3d.com/ Site oficial da unity
http://unity3d.com/get-unity Download da Unity
https://www.facebook.com/notes/393848757301025/Perguntas%20Frequentes/1349559698396588/ Perguntas e respostas sobre a Unity
https://www.youtube.com/watch?v=ay0KvRcQkM8 Tutorial sobre como usar o WebPlayer da Unity e customizá-lo
https://www.youtube.com/channel/UCEbEugtl-gIHmFQFmlgNcKQ: Canal com vários tutoriais e informações sobre a Unity
https://unity.com/pt/how-to Série de artigos how-to e ebooks para auxiliar criadores a mexer com diversos aspectos da game engine

Tutoriais

https://unity3d.com/pt/learn/tutorials/modules/intermediate/scripting/properties Scripting na Unity

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.