Tutorial – Jogo em 1º Pessoa em Unity 3D – Parte 2
Continuando…
- Vamos agora inserir a arma, para isto simplesmente arasste-o para a janela Project, caso você não tenha uma arma vc pode baixar a que usei, clique aqui , primeiro importe a textura e depois o objeto.
- Adicione-o junto a Main Camera e posicione-o com os seguintes parametros do Transform: position(0,-3.3,0.9),rotation(86.2,173.1,83.8) e Scale(0.2,0.2,0.2) .
- Crie um cubo e adicione a arma, coloque na ponta da arma, deixe o rotation como (0,90,0) e a Scale como 1 .
- Crie um novo TAG, para isto selecione o cubo, vá na janela Inspector, clique em Tags ( fica em cima dos campos do Transform) e AddTag, na janela que abrie clique em Tags e coloque size como 2 e nos elementos crie as Tags bala e balaIni, veja a imagem abaixo:
- Crie um novo JavaScript , renomeio como arma e clique dias vezes nele para editá-lo.
- Copie e cole o código abaixo.
//Velocidade do tiro var velTiro = 150.0; //Bala var balaObj : GameObject; function Atira () { //Cria a bala, adiciona fisica e aplica velocidade var bala = Instantiate(balaObj,transform.position,transform.rotation); //GameObject.CreatePrimitive(PrimitiveType.Sphere); bala.tag = "bala"; //bala.transform.parent = transform; bala.AddComponent(Rigidbody); bala.transform.position = transform.position; bala.transform.rotation= transform.rotation; //bala.transform.localScale= Vector3(0.1,0.1,0.1); bala.rigidbody.velocity = transform.forward * velTiro*-1; bala.rigidbody.mass = 1; //toca o som do tiro audio.Play(); } function Update () { //Atira quando aperta o botão correspondente if (Input.GetButtonDown("Fire1")) { Atira(); } }
- Adicione o escript ao cubo na ponta da arma
- Crie uma esfera, scala para .1 e adicione a particula Fire1 nela, é só arrastar e soltar para a sphere.
- Crie um novo javascript para retirar a bala da cena e aplique a bala(esfera).
- Renomeie este Script para mataBala e edite-o.
- Copie e código o código abaixo:
function Start () { meMate(); } function meMate(){ //Mata a bala depois de 5 segundos que ela foi criada yield WaitForSeconds(5); Destroy(gameObject); }
- Crie um Prefab (Asset/Create/Prefab) e adicione a efera, para isto arraste a esfera até o Prefab criado, meu prefab eu chamei de bala.
- Arraste o prefab criado para o campo balaObj do componente cubo que vc colocou na ponta da arma.
Agora de um Play e teste, o jogo deverá estar funcionando a função de atirar.
No próximo post colocaremos os inimigos.
iaê kra, eu to com um problema, na ultima imagem deste post no script vc colocou tiro, mas vc não mostra este script, poderia mostra-lo?
01/07/2011 às 11:44
opa, ja concertei aki, a arma está atirando agora 😀
01/07/2011 às 12:04
ok.
02/07/2011 às 16:12
O que vc fez cara? eu nao conseguir v o tiro
30/08/2011 às 23:36
o tutorial acima n pega pq?
03/01/2012 às 22:30
estou tendo dificuldades para adicionar a arma onde fica a arma para que eu arraste ela para a janela project? como adicionar a arma que você disponibilizou para download? obrigado
06/08/2011 às 21:30
Olá, você deve fazer o download da arma primeiro,, depois é só descompactar e arrastar o conteúdo para a aba Project.
08/08/2011 às 14:39
Amigo to com o Unity livre 3.5 nao concigo achar o programa para fazer o personagem pode me ajudar?
27/02/2012 às 15:24
estou com duvida no passo 3, por que o unity aqui faz com que o cubo seja maior que o cano da metralhadora, e ele anda pro lado até cair, por favor não sei o que acontece, abraços
07/08/2011 às 17:27
vc pode deixar menor o cubo ou deixar no cubo no meio da tela para servir de mira igual eu fiz
26/11/2012 às 17:43
Olá, você deve randomizar o cubo até que ele fique de um tamanho bom para ficar posicionado na ponta da arma, sobre andar, verifique se existe algum erro nos códigos do script mov_personagem, ele deve estar exatamente assim:
//Velocidade do Personagem
var vel = 10.0;
//Lados
private var lado:float = 0;
private var ladoV:float = 0;
function Update () {
//Vira a posição conforme o mouse
lado+= (Time.deltaTime * vel * Input.GetAxis(“Mouse X”) * 5);
ladoV-= (Time.deltaTime * vel * Input.GetAxis(“Mouse Y”) * 5);
transform.eulerAngles = Vector3(ladoV, lado, 0);
//Anda sempre para frente e para o lado
transform.Translate(Vector3.forward * ((Time.deltaTime *vel) * Input.GetAxis(“Vertical”)));
transform.Translate(Vector3.right * ((Time.deltaTime *vel) * Input.GetAxis(“Horizontal”)));
}
08/08/2011 às 14:45
Cara eu fiz isso e da o erro q diz q precisa de ponto o meu unity é o 3.4 pro me ajuda plx
20/07/2012 às 1:57
olá amigo estou com mais uma dúvida, a esfera não fica junto do cano da arma, ela fica abaixo do cenário, sendo assim o fogo não sai na ponta da arma, mas sim onde a esfera está, como faço para resolver esse problema?? obrigado
08/08/2011 às 21:29
olá amigo, eu resolvi o problema da esfera, mas eu também estou com o problema de o personagem andar de lado, eu até retirei o mov_ personagem, mas ele continua andando de lado, não sei o que pode ser, se você puder me ajudar
obs: já tentei colocar os controles do mov_ personagem da maneira que você ensinou nos comentários, mas não adiantou
08/08/2011 às 21:46
deve ser por causa da arma, mais e simples click na sua arma e vai la no inspector depois vc caça o box collide e depois click com o botão direito do mouse e depois remover componente.
26/11/2012 às 17:46
Na verdade eu uso minha própria programação da movimentação, e desculpa pelo li um comentário do post da parte 1 e resolveu meu problema, muito agradecido.
08/08/2011 às 22:41
olá wesley, será que você poderia me passar sua programação de movimentação?? eu também estou com o problema na movimentação do personagem, ele fica andando pro lado, se puder passar eu agradeço mto, vlws
09/08/2011 às 0:09
Olá, caso queira você pode usar o componente de movimentação que vem junto com o Unity,selecione o personagem e vá em Component/character/FPS Input Controler, será automaticamente criado todo o controle para seu personagem.
09/08/2011 às 11:28
Desculpa aquela minha programação estava bem bugada, utilizo agora o Componente Character Controller porém me lembro de alguns códigos, você pode dar uma estudada:
// Quando aperta “alguma tecla” “Alguma Função” Acontece.
If (Input.GetButton(“Alguma Tecla”)) {/* Alguma Função */}
Funções: transform.position, transform.foward, transform.eulerAngles.y ou x, moveSpeed e Turnspeed, Time.deltaTime…
é bem simples porém não lembro como armei o script (existe algumas variáveis descartáveis mas não lembro muito bem) não espero que ajude mas já vale a intenção…
11/08/2011 às 15:54
ñ ta funcionando amigo ajuda ai
18/08/2011 às 1:38
Qual o problema?Onde não está conseguindo
18/08/2011 às 11:22
Eu fiz tudo o que pede, acho que errei em alguma coisa, porque olha o print.
Quando eu vou tentar o jogo fica assim. Na onde eu errei ?
28/08/2011 às 17:17
depois que vc coloca o “prefab” no campo de bala object vc pode excluir a esfera do campo !
16/04/2012 às 23:16
Olá, pela sua imagem percebi que vc está com 2 AudioListeners, o que significa que vc colocou 2 câmeras na cena, verifique se vc não esta ativando a câmera errada, no tutorial usa apenas 1 câmera.
29/08/2011 às 11:18
nao consigo achar o post da parte 1 onde esta?
15/09/2011 às 17:07
Olá, esta aqui.
https://eareis.wordpress.com/2011/05/17/tutorial-jogo-em-1%c2%ba-pessoa-em-unity-3d-parte-1/
16/09/2011 às 14:11
Amigo eu coloco o carinha e a arma la certinho, mas quando dou play ele funciona perfeitamente não cai do cenario nem nada, ja coloquei o cube colider, mas quando aponto mas ele atravessa qualquer parede e se eu quiser atravessa o chão tbm, parece que ta flutuando no meio do cenario da uma ajuda ai manin, grato!
24/10/2011 às 1:40
Alguem consegue resolver meu problema as balas não voam elas fikam parada no ar???
q erro e esse
27/10/2011 às 5:29
nao consigo por a arma ,pois quando crio o script,ele da erro,
me ajude por favor
31/10/2011 às 16:49
como cria o script?
20/04/2012 às 15:32
da arma?
20/04/2012 às 15:33
Cara, coloca esse jogo ai para download
06/11/2011 às 0:39
Emerson Voc~E depois podia ensinar a fazer um jogo esportivo
16/11/2011 às 12:26
Tenho interesse mas Infelizmenmte estou sem tempo, assim que puder continuo com os tutos.
17/11/2011 às 13:38
Emerson, to com um problema! quando descolo meu personagem e atiro, a bala nao sai da arma, e sim do local de origem da esfera! me ajuda PF! 😀 GRATO!
14/01/2012 às 19:25
cara quando eu atiro o jogo da pause porque você pode me ajudar?
26/01/2012 às 15:46
cara é por que tem erros no seu game! … se vc não souber engles vai no “google tradutor” e traduz os erros . e concerte tudo!!!
16/04/2012 às 20:56
a deu eu eu so modifiquei o script na parte do som e arrumo
26/01/2012 às 15:49
tbm aconteceu comigo!!!
16/04/2012 às 20:55
Me Ajuda , eu fiz tudo certo , mais quando eu atiro a bala não vai longe ,ela cai perto de mim,olha o print
03/02/2012 às 12:03
clika no “cube”, que está na ponta da arma e vai no escript “arma” … e coloca “200” em vel bala.
16/04/2012 às 20:54
Oi Sou Lucas !!! Quero Sabe Como Cria Uma Esfera??? E Como eu Coloco O Cubo Na Boca Da Arma Pq Naum Ta Dando Já Tetendei de Varias Formas !!!
Dez De já Agradeço
by:Killestem ;-D
09/02/2012 às 18:41
aff cara … game object –: sphere … game object,cube…
16/04/2012 às 20:52
Tem um erro comigo a bala esta saido para o lado! me ajude!
09/02/2012 às 22:03
Bom galera eu to fazendo um jogo aqui mas quando eu vo colocar a arma pra grudar no personagem (char) não gruda me expliquem.vlw ja consegui importa o arquivo da ak-47 =)
———————QUEM SABER O PROBLEMA ME AVISE—————————–
VLW
25/03/2012 às 23:18
cara para posicionar eu somente coloquei a arma no meu personagem e angulei a arma …
ou seja ,arraste o ak-47 para o seu personagem na janela “hieraci”,(eu acho que se escreve assim msm).
e ajuste sua arma no personagem.!
16/04/2012 às 20:47
cara eu modelei e animei meu personagem e eu posicionei uma m4 em mãos, uma p 90 , e cara vlw pelo seu tutorial msm !!!! 🙂
16/04/2012 às 20:44
cara eu modelei o “bart simpsom” e o animei e coloquei uma mini gun na mão dele.
kkkk
ficou mto loko .
16/04/2012 às 20:58
Cara o seu tutorial é muito bom. Porem, eu não consigo fazer o personadem atirar ja fiz tudo o que esta nele umas 3 vezes, cara não sei, mais acho que é por causa da minha versão do Unity (eu uso duas vesões a 3.4.2, se eu não me engano, ea 3.5,1). cara me da uma ajuda ai. Vlw e muito obrigado!
29/04/2012 às 14:46
eu não consigo baixar a arma. Alguem pode me ajudar?
24/09/2012 às 1:38
ola gente eu to criando o game primeira pessoua
entao eu ja tenho os script para andar atirar e outros
bomo como eu baixo animaçao e o script para recarregar a arma
20/10/2012 às 22:24
Ola eu quero criar a fisica da água no game pf me ajuda entre em contato face https://www.facebook.com/ericlescoringa
26/11/2012 às 15:48
Ola a sua arma n esta disponível para download. ..error 404
19/11/2013 às 17:23
man minha bala atira mais sai uma esfera grande e depois quando eu tento atirar outra vez ele não sai como se tivesse se chocando com meu personagem como eu ajeito isso ?
26/12/2013 às 13:13
ai pode deixar consegui ajeitar agora esta atirando. mais amigo só tem um problema as vezes eu atiro a bala sai de lado como eu posso ajeitar.
26/12/2013 às 13:59
amigo agora eu quero saber como coloco mira ?
26/12/2013 às 14:52
Minha bala esta saindo pro lado como ajeito
24/10/2015 às 0:39
oi , viu eu sou Richerd Vieira procura la no facebook, mas o script que vc fez não funciona pro unity 5, então eu apague algumas coisas, dai fico assim.
#pragma strict
//Velocidade do tiro
var velTiro = 150.0;
//Bala
var balaObj : GameObject;
var GameObject;
function Atira () {
//Cria a bala, adiciona fisica e aplica velocidade
var bala = Instantiate(balaObj,transform.position,transform.rotation); //GameObject.CreatePrimitive(PrimitiveType.Sphere);
bala.tag = “bala”;
//bala.transform.parent = transform;
bala.AddComponent(Rigidbody);
bala.transform.position = transform.position;
bala.transform.rotation= transform.rotation;
//bala.transform.localScale= Vector3(0.1,0.1,0.1);
//toca o som do tiro
}
function Update () {
//Atira quando aperta o botão correspondente
if (Input.GetButtonDown(“Fire1”)) {
Atira();
}
}
29/08/2016 às 21:47