Skip to content

Posts from the ‘Programação’ Category

9
jun

Movimento de plataforma na Unity3D

No desenvolvimento de jogos é comum usarmos plataformas (lembre dos grandes games do passado).

Usando a engine Unity 3D você pode chegar a alguns resultados estranhos caso opte por um dentre dois paradigmas de programação. Procurarei explicar aqui como evitar o efeito que vários iniciantes assistem em seus projetos: suas plataformas parecem não fazer parte do mundo e são “ignoradas” pelos outros objetos que são calculados pela física da engine. Os outros objetos ficam deslizando sobre suas plataformas ou, ainda pior, as atravessam como se as mesmas não existissem.

Falando especificamente da Unity, existem duas situações principais que podem originar esse problema:

1) Um objeto com componentes “collider” e “rigidbody” está sobre um objeto com pelo menos um componente “collider” que se move através de incrementos em sua posição.

2) Um personagem usando o componente “Character Controller” está sobre um objeto com pelo menos um componente “collider” que se move tanto através de incrementos em sua posição quanto através de alterações na velocidade do componente “rigidbody” do mesmo.

O exemplo a seguir demonstra como solucionar o problema (1). O segundo problema será solucionado em um post futuro, quando eu falarei do desenvolvimento de um demo com um personagem.

[Unity3D] Movimentando Plataformas

Notem que adicionei um componente “ConfigurableJoint” pois gostaria que a plataforma se movesse apenas no eixo X (marquei as opções “lock” nas propriedades YMotion e ZMotion para obter esse resultado). Percebam, ainda, que marquei a opção Freeze Rotation do componente rigidbody, pois gostaria que a plataforma não girasse livremente.

Você pode testar o projeto e observar o resultado baixando o arquivo Unity3D – Movimento de Plataforma.

Grande abraço!

7
jun

Carregamento de cenas com streaming

Algumas pessoas perguntaram no fórum da Unidev sobre como fazer um sistema de loading de cenas na Unity 3D. Fiz um projeto simples mostrando como fazer e um vídeo com o resultado obtido:

Como usar o “streamed scene loading” da Unity

Lembrando que esta técnica não funciona para projetos Standalone (Mac, Windows, etc). Nestes casos é necessário ter uma licença PRO e utilizar a função de carregamento assíncrono de cenas (Application.LoadLevelAsync) e usar o progresso disponível na “thread” criada.

2
jun

Adivinhe o número

No mundo dos games, assim como em qualquer outro mercado profissional, o mais difícil é sempre o primeiro passo. Hoje ajudarei vocês a darem o primeiro passo. Como? Mostrando o código-fonte de um jogo completo para e comentando seus pontos mais importantes. Desenvolvi esta vídeo aula no período em que fui colunista de um site de tecnologia. Muitos de vocês devem estar pensando: “Mas Raphael, um jogo de ‘Adivinhar números’ não é muito idiota?”. O importante é começar pequeno, para que consigamos concluir os projetos. Lembre: o mais importante é conseguir terminar os jogos! É impossível fazer um jogo do tamanho do H.A.W.X. sozinho, ainda mais sem experiência. Começar com um projeto grande só aumenta as chances de não o concluirmos, deixando-nos frustrados por ver nosso trabalho pela metade. Por esses motivos optei por um jogo bastante simples, mas cuja programação aborda tópicos importantes do desenvolvimento de jogos.

Espero que gostem e comentem, além de me enviarem suas dúvidas e códigos-fonte (comentados, não esqueçam)!

Grande abraço a todos!

Parte 1

Parte 2

Parte 3

Parte 4

Parte 5

Parte 6