"Unity 3D", mais conhecido simplesmente como "Unity", é um shell de programação de jogos especial projetado para agilizar o processo de criação de jogos. Ao usar o Unity, programadores de jogos conseguem contornar muitas das armadilhas e falhas que podem tornar a criação de jogos tediosa e difícil. Uma das principais dificuldades para novos usuários do "Unity" é descobrir como fazer seu personagem principal atirar onde o mouse está apontando. Resolva esse problema criando um script MissileLauncher (Lançador de Mísseis) que permitirá ditar o comportamento das armas de mísseis do seu personagem.
Baixe o FPS_Tutorial.zip do site do Unity 3D. Importe o arquivo "Standard Assets Unity Package" da pasta "Standard Packages" na sua pasta de instalação do Unity 3D.
Abra o projeto para o qual você quer modificar o comportamento do mouse. Neste ponto, você já deve ter construído um ambiente de nível, um modelo para seu personagem principal, um "Launcher" (Lançador) ou modelo de arma para esse personagem, e um míssil a ser disparado da arma. Lembre-se que o termo "míssil" aqui descreve qualquer projétil disparado de uma arma, não apenas um foguete explosivo.
Selecione "Assets" (Ativos) no menu principal, seguido por "Create" (Criar) e depois "Javascript". Isso criará um novo ativo na área do Painel do Projeto chamado "NewBehaviourScript". Renomeie este ativo para "MissileLauncher". Este script ditará o comportamento da arma do seu personagem.
Crie um novo diretório dentro do painel Project View chamado "WeaponScripts". Os scripts que definem o comportamento de cada arma individual serão colocados aqui. Mova o novo script MissileLauncher para o diretório WeaponScripts, junto com o script que define a aparência do seu objeto Missile.
Escreva um script para "MissileLauncher" que fará sua arma gerar um míssil e fazê-lo mover para frente dando-lhe velocidade ao longo do eixo Z. Após escrever o código, salve o arquivo JavaScript. Um script de exemplo seria algo como:
var projectile : Rigidbody;
var speed = 20;
function Update()
{
if( Input.GetButtonDown( "Fire1" ) )
{
var instantiatedProjectile : Rigidbody = Instantiate(
projectile, transform.position, transform.rotation );
instantiatedProjectile.velocity =
transform.TransformDirection( Vector3( 0, 0, speed ) );
Physics.IgnoreCollision( instantiatedProjectile.collider,
transform.root.collider );
}
}
A linha "GetButtonDown( "Fire1" )" diz ao script para executar as ações seguintes quando você clica no botão esquerdo do mouse. A linha "instantiatedProjectile" cria o objeto míssil. A linha "TransformDirection( Vector3..." diz ao objeto míssil para mudar sua direção para o eixo Z, que é o eixo onde o ponteiro do mouse do usuário está voltado.
Anexe o script MissileLauncher à arma do seu personagem indo ao painel FPS Controller do Unity e anexando o script ao "Launcher".
Associe o objeto Missile que você criou com a variável "projectile" usada no script de exemplo acima. Clique no script "Missile" no painel Project, depois clique em "Components" na barra de menu principal. Selecione "Physics" (Física) e depois "Rigidbody". Isso tornará o projétil um objeto sólido e o combinará com o nome da variável usado no código de exemplo.
Associe o objeto Missile com a variável Projectile no script. Faça isso clicando em "Launcher" no painel Hierarchy e arrastando o script Missile do painel Project para a variável Projectile na seção do script MissileLauncher. O programa associará então o objeto Missile com seu comportamento adequado.
Execute o jogo para testar o comportamento da sua arma. Assumindo que a perspectiva do seu personagem está centrada na posição do cursor do mouse, clicar no botão do mouse deve disparar seu míssil criado ao longo do vetor onde o mouse está apontando.