
No nosso Curso Básico você dever ter estudado uma lição em que o revólver atirava uma bala instancializada na hora do tiro.
Aqui, por enquanto, nosso avatar não possui uma arma, mas vamos criar a possibilidade dele atirar. No futuro colocaremos uma arma aparecendo.
Naquela aula dizíamos:
"A "balaFilha" será um "prefab" com Rigidbody tendo o "Use Gravity" não setado.
A "balaPai", colocada na frente do cano da pistola, é um gameobject vazio e terá o script:
Lembrar de arrastar o prefab para a variável no Inspector."
var balaFilha : Rigidbody;
var velocidade = 10.0;
function Atirar () {
var balFiClone : Rigidbody = Instantiate(balaFilha, transform.position,transform.rotation);
balFiClone.velocity = transform.forward * velocidade;
}
function Update () {
if (Input.GetKeyUp("t")) Atirar();
}
Aqui, vamos criar o gameobject vazio e colocá-lo como filho da MainCamera. Isso vai possibilitar que atiremos também para cima e para baixo. Mas , como consideramos a câmera como o olho do avatar, vamos colocar a "balaPai" um pouco abaixo, do lado direito dela e para frente (não tocando no avatar). Cuidado para o eixo azul (Z) estar na mesma direção do da câmera:

Criamos então uma pequena esfera no espaço 3D, na qual colocamos um Rigidbody. Por enquanto (isso vamos mudar depois) arraste uma das texturas roxas da pasta "Textures" sobre a bala. Crie um prefab na divisória "Project", chamado "balaFilha", e arraste a esfera para dentro dele. Apague a esfera na divisória "Hierarchy".
Vamos acoplar, ao gameobject vazio "balaPai", o script, que é semelhante ao já visto:
var balaFilha : Rigidbody;
var velocidade = 20.0;
function Atirar () {
var balFiClone : Rigidbody = Instantiate(balaFilha, transform.position,transform.rotation);
balFiClone.velocity = transform.forward * velocidade;
}
function Update () {
if (Input.GetButtonDown("Fire1")) Atirar();
}
As únicas diferenças aqui são a velocidade maior; e usamos o botão direito do mouse para atirar. Ele tem a definição de "Fire1" no "Project Settings > Input". Falamos dessa definição de "Inputs" nessa lição de nosso Curso Básico.
Uma outra diferença é que vamos setar o "Use Gravity" do Rigidbidy da bala.
Lembrar de arrastar o prefab para a variável:

Pode dar play, que já é possível dar uns tirinhos (ainda meio sem graça, pois não tem arma, nem som, nem ninguém para acertar). Ou brinque na nossa demo que está em outra página.
Lembrar que aqui se atira clicando e não apertando "t", como costumamos usar em nosso Curso Básico (e achamos mais interessante, pois pode-se usar o clique para outras coisas - mas estamos tentando seguir, mais ou menos, o tutorial da Unity Tec).
A novidade aqui é que podemos atirar para cima e para baixo.
LIÇÃO ANTERIOR PRÓXIMA LIÇÃO ÍNDICE HOME PAGE