O que é Unity?
Por: RogerioHV • 9/8/2021 • Projeto de pesquisa • 2.219 Palavras (9 Páginas) • 139 Visualizações
O que é Unity?
Unity 3D ou simplesmente Unity é um motor de jogo 3D e uma IDE. Foi criado pela Unity Technologies e tem características parecidas com o Blender Virtools e Torque Game Engine. O motor cresceu a partir de uma adição de um suporte para a plataforma Mac OS X e depois se tornou um motor multi-plataforma.
Com ênfase na portabilidade, o motor tem como alvo as seguintes APIs:
- Direct3D no Windows e Xbox 360;
- OpenGL no Mac, Windows e Linux;
- OpenGL ES no Android e iOS;
- APIs proprietárias em consoles de videogame.
Funções do Unity
- Unity permite a especificação de configurações de compactação e de resolução de textura para cada plataforma que o jogo suporta. Além disso ainda fornece suporte para mapeamento de colisão, de reflexão, parallax, tela de oclusão espaço ambiente (SSAO), sombras dinâmicas utilizando mapas de sombra, render-a-textura e full-screen de pós-processamento efeitos.
Características Principais
- Suporte para o uso de shaders;
- Programação em C♯ ou JavaScript;
- Suporte ao PhysX, incluindo detector de colisão, soft body e ragdoll;
- Compatibilidade com os navegadores (via o plugin Unity Web Player): Internet Explorer, Firefox, Safari, Opera, Google Chrome (versões anteriores a 45) e Camino;
- Compatibilidade com Blender, 3ds Max, Maya, Cinema 4D, Cheetah 3D, Softimage, modo, ZBrush, Lightwave, Photoshop, Fireworks, e "Substance".
No Unity você pode programar behaviours em C#, JavaScript e Boo.
As 3 linguagens são fáceis de utilizar e são executadas em cima da plataforma Mono (baseado no .NET 3.5). Dessa forma, você tem praticamente toda a biblioteca .NET a sua disposição.
O Unity é integrado com o editor MonoDevelop, mas você pode escolher qualquer editor que desejar.
Também é possível desenvolver utilizando o Visual Studio.
Entre as 3 linguagens, as mais utilizadas são C# e JavaScript.
JavaScript (também chamada de UnityScript) é mais fácil para iniciantes.
C# é uma linguagem mais poderosa e te dá mais controle sobre os objetos e estruturas.
O Unity permite interoperabilidade entre as linguagens sob certas condições.
Mas na prática, é melhor evitar misturar códigos de diferentes linguagens em um mesmo projeto.
o que é uma game engine?
A game engine é o programa de computador utilizado na confecção dos jogos digitais. É na game engine que a programação do jogo é feita, unindo arquivos de áudio, imagens e modelos 3D para criar os diversos cenários e ambientes do jogo.
Uma game engine possui diversas bibliotecas de scripts já embutidas, que facilitam o desenvolvimento de um jogo. Por exemplo, a maioria das game engines já vem com scripts para cuidar da renderização dos gráficos (motor gráfico) e da física básica envolvida no jogo (motor de Física). Isso quer dizer que é possível criar, por exemplo, uma esfera no editor da game engine e, com apenas alguns cliques, configurar aquele objeto 3D para se comportar como uma bola de borracha.
Dessa forma, se “soltarmos” a bola sobre uma superfície, ela aceleraria em direção ao solo (devido a gravidade, configurada automaticamente pela game engine) e quicaria algumas vezes no solo, perdendo energia até que ela ficaria parada no chão. Exatamente como aconteceria se deixássemos cair uma bola de basquete de verdade, por exemplo.
Todo esse comportamento físico é calculado automaticamente pela game engine, sem que você precise passar pelo problema de escrever em linguagem de programação as equações físicas envolvidas no evento.
A Unity é um motor de desenvolvimento integrado que fornece uma funcionalidade pioneira para criação de jogos e outros conteúdos interativos. Poderá utilizar o Unity para montar sua arte e recursos em cenas e ambientes; adicionar física, editar e testar simultaneamente seu jogo e, quando preparado, publicar em suas plataformas escolhidas, tais como computadores fixos, a rede, iOS, Android, Wii, PS3 e Xbox 360.
Desenvolvendo para diferentes plataformas
Uma das características mais incríveis do Unity é a possibilidade de preparar o jogo para várias plataformas de uma vez, sem que nenhum trabalho adicional seja necessário. Para quem nunca tentou fazer um jogo talvez essa afirmação não pareça bastante coisa, mas eu vou tentar explicar o quanto isso é incrível!
Quando a Unity (e outras game engines) ainda não ofereciam esse tipo de portabilidade simplificada, o que acontecia era o seguinte: você escolhia uma plataforma pra vender seu jogo e programava usando o “kit de desenvolvedor”, geralmente fornecido pela empresa da plataforma. Dessa forma, todos os scripts que você escrevia eram específicos para aquela plataforma.
Se seu jogo fizesse algum sucesso e você quiser publica-lo também para outra plataforma (por exemplo, considere as plataformas iOS e Android), seria necessário programar todo o jogo de novo, usando a linguagem adequada para a nova plataforma. Dá pra imaginar o trabalho que isso daria, não dá?
Desenvolvendo com Unity, você tem a incrível possibilidade de fazer o jogo apenas uma vez e publica-lo em mais de dez plataformas! Isso mesmo, você faz o jogo uma vez e o Unity trata de “traduzir” para a linguagem adequada em cada plataforma, preparando os arquivos finais do jogo de acordo com a plataforma-alvo escolhida.
Mas para quais plataformas o Unity consegue exportar? Bom, basicamente todas as plataformas relevantes. A lista atual (que cresce constantemente) é a seguinte:
– iPhones
– iPads
– Blackberry
– Celulares e tablets com Android
– PC
– Mac
– Linux
– Windows Phone
– Nintendo Wii
– Xbox 360
– Playstation 3
Portanto, se você for um desenvolvedor autorizado dessas plataformas, você pode criar seu jogo apenas uma vez e o Unity se encarregará de gerar os arquivos necessários para que o seu jogo rode em cada uma dessas plataformas.
Você deve imaginar que a economia de tempo e dinheiro são enormes! Com Unity, até mesmo desenvolvedores independentes podem ter jogos publicados em diversas plataformas.
As principais vantagens de utilizar a Unity 3D
As vantagens em utilizar a Unity 3D como game engine são muitas. Para começar, a possibilidade de fazer um jogo e publica-lo em diversas plataformas (como mencionei na seção anterior) sem que seja necessário refazer o jogo várias vezes.
...