[TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
Página 1 de 1
[TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
Olá meus amigos!
Nos jogos FPS de hoje (Far Cry, Call of futy, Medal of Honor, etc) notamos um detalhe que quando você vira a camera do seu personagem a arma se movimenta junto e depois volta à sua posição original... e esse deslocamento deixa seu jogo mais realista, e isso é muito bom!
Encontrei um script na internet que fazia isto mas estava cheio de comandos desnecessários e estava em JavaScript, então eu mesmo converti para C#, e simplifiquei o script para facilitar no entendimento! :D
Segue o script:
O script deve conter o nome "ArmaSeMover"
esse script você vai jogar na sua arma, e na aba Inspector você seta os valores em "QuantidadeMovimento" e em "VelocidadeMovimento" do jeito que achar melhor... no meu projeto eu coloquei QuantidadeMovimento = 1 e VelocidadeMovimento = 2 e achei que ficou bom.
Na variavel "Arma" você vai linkar a sua arma.
É isso pessoal!
Até mais
Nos jogos FPS de hoje (Far Cry, Call of futy, Medal of Honor, etc) notamos um detalhe que quando você vira a camera do seu personagem a arma se movimenta junto e depois volta à sua posição original... e esse deslocamento deixa seu jogo mais realista, e isso é muito bom!
Encontrei um script na internet que fazia isto mas estava cheio de comandos desnecessários e estava em JavaScript, então eu mesmo converti para C#, e simplifiquei o script para facilitar no entendimento! :D
Segue o script:
- Código:
using UnityEngine;
using System.Collections;
public class ArmaSeMover : MonoBehaviour {
public float QuantidadeMovimento;
public float VelocidadeMovimento;
public GameObject Arma;
private float MovimentoEixoX;
private float MovimentoEixoY;
private Vector3 PosicaoOriginal;
private Vector3 NovaPosicao;
void Start(){
PosicaoOriginal = transform.localPosition;
}
void Update () {
MovimentoEixoX = Input.GetAxis( "Mouse X" ) *Time.deltaTime * QuantidadeMovimento;
MovimentoEixoY = Input.GetAxis( "Mouse Y" ) *Time.deltaTime * QuantidadeMovimento;
NovaPosicao = new Vector3 ( PosicaoOriginal.x+ MovimentoEixoX, PosicaoOriginal.y+ MovimentoEixoY, PosicaoOriginal.z);
Arma.transform.localPosition = Vector3.Lerp(Arma.transform.localPosition, NovaPosicao , VelocidadeMovimento * Time.deltaTime);
}
}
O script deve conter o nome "ArmaSeMover"
esse script você vai jogar na sua arma, e na aba Inspector você seta os valores em "QuantidadeMovimento" e em "VelocidadeMovimento" do jeito que achar melhor... no meu projeto eu coloquei QuantidadeMovimento = 1 e VelocidadeMovimento = 2 e achei que ficou bom.
Na variavel "Arma" você vai linkar a sua arma.
É isso pessoal!
Até mais

Última edição por JohnRambo em Sex Set 20, 2019 1:35 pm, editado 1 vez(es)
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
Achei que esse efeito seria muito mais complicado de se fazer '-' só 23 linhas kk vlw
Weslley- Moderador
-
PONTOS : 4262
REPUTAÇÃO : 716
Idade : 22
Áreas de atuação : https://play.google.com/store/apps/dev?id=4937415175307699867
https://exitside.com.br/
Respeito as regras :
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
@Guilherme_cj852 escreveu:Achei que esse efeito seria muito mais complicado de se fazer '-' só 23 linhas kk vlw
Pois eh kkkkk, mas no site onde eu encontrei este script ele estava muito mais complexo.... consegui simplificar bastante =]
weslleyFx escreveu:kkkkk, legal
vlw =]
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
vlw funcionouJohn Rambo escreveu:@Guilherme_cj852 escreveu:Achei que esse efeito seria muito mais complicado de se fazer '-' só 23 linhas kk vlw
Pois eh kkkkk, mas no site onde eu encontrei este script ele estava muito mais complexo.... consegui simplificar bastante =]weslleyFx escreveu:kkkkk, legal
vlw =]
Eduardoro39- Avançado
-
PONTOS : 1856
REPUTAÇÃO : 11
Idade : 21
Respeito as regras :
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
funcionou muitissississimo bem!
jonatan oliveira rocha- Avançado
-
PONTOS : 1875
REPUTAÇÃO : 6
Idade : 30
Respeito as regras :
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
Seria bom se usasse o Mathf.Clamp para fixar o valor do movimento até um limite máximo, porque do jeito que está, se o jogador mover o mouse muito rápido a arma desloca para uma posição muito distante da origem.
- Código:
public float LimitedeMovimento; // Adicione ao início, e coloque o valor que achar melhor.
// Adicione as linhas abaixo após a linha 19.
MovimentoEixoX = Mathf.Clamp(MovimentoEixoX, -LimitedeMovimento, LimitedeMovimento);
MovimentoEixoY = Mathf.Clamp(MovimentoEixoY, -LimitedeMovimento, LimitedeMovimento);
SK Games- Iniciante
- PONTOS : 1692
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] Deslocamento (movimento) de armas para jogos FPS
Boa! Obrigado pela sugestão! :D@SK Games escreveu:Seria bom se usasse o Mathf.Clamp para fixar o valor do movimento até um limite máximo, porque do jeito que está, se o jogador mover o mouse muito rápido a arma desloca para uma posição muito distante da origem.
- Código:
public float LimitedeMovimento; // Adicione ao início, e coloque o valor que achar melhor.
// Adicione as linhas abaixo após a linha 19.
MovimentoEixoX = Mathf.Clamp(MovimentoEixoX, -LimitedeMovimento, LimitedeMovimento);
MovimentoEixoY = Mathf.Clamp(MovimentoEixoY, -LimitedeMovimento, LimitedeMovimento);
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum