(Duvida) Sistema de Precisao Para Jogos FPS
3 participantes
Página 1 de 1
(Duvida) Sistema de Precisao Para Jogos FPS
Bom dia galera! Eu estou criando um FPS em Primeira pessoa mais estou com uma Duvida, Como eu posso fazer pra criar um sistema de precisao pra minhas armas?? tipo no estilo do point black ou algo do tipo... Agradeço desde ja Obrigado!
ALS863244- Iniciante
- PONTOS : 3383
REPUTAÇÃO : 0
Respeito as regras :
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Atirar e os tiros espalharem caso voce fique com o dedo pressionado por muito tempo.
RenanMSV- Instrutor
- PONTOS : 4486
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Marcos e oque o Renan Disse, Atirar e os tiros espalharem caso voce fique com o dedo pressionado por muito tempo.
ALS863244- Iniciante
- PONTOS : 3383
REPUTAÇÃO : 0
Respeito as regras :
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Você basicamente da um random.range na direção do tiro O.o
Más para isto, é necessário ter o sistema de tiro já pronto
Más para isto, é necessário ter o sistema de tiro já pronto
Re: (Duvida) Sistema de Precisao Para Jogos FPS
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class M16GlFire : MonoBehaviour {
public GameObject Bullet;
public Transform InstaPosition;
private float TripTime;
public float Waitingtime;
public int Munition; //Munição atual no pente
public int MunitionMax; //Munição máxima por pente
public int MunitionExt; //Munição extra
public AudioClip shotSound;
public int combs;
public GameObject Flare;
//HudTexts
public Text BulletText;
public Text MunitionExtText;
void Start() {
combs = 3;
MunitionExt = 90;
MunitionMax = 30; //Defini a munição máxima por pente nessa arma
Munition = 30;
TripTime = 3;
BulletText.text = "" + Munition;
MunitionExtText.text = "" + MunitionExt;
}
void Update () {
TripTime += Time.deltaTime;
if(TripTime >= Waitingtime){
if(Munition >= 1 ){
if(Munition <= 30 ){
if(MunitionExt >=1){}
if(Input.GetButton("Fire1")) {
Instantiate(Bullet,InstaPosition.position, InstaPosition.rotation);
Instantiate(Flare,InstaPosition.position, InstaPosition.rotation);
Munition --;
TripTime = 0;
//HudTexts
MunitionExtText.text = "" + MunitionExt;
BulletText.text = "" + Munition;
GetComponent<AudioSource>().clip = shotSound;
GetComponent<AudioSource>().Play();
}
}
}
}
//HudTexts
if(Input.GetKeyDown(KeyCode.R)){
int MunitionDif = MunitionMax - Munition; //Quantas balas estão faltando nesse pente.
if(MunitionDif > 0 && MunitionExt > 0){ //Se está faltando balas no pente e Tem munição extra
if(MunitionExt < MunitionDif){ //Se tem munição extra não é suficiente para encher o pente
MunitionDif = MunitionExt; //Já que não tm munição suficiente para encher, então vamos pegar as que tem
}
MunitionExt = MunitionExt - MunitionDif; //Pega a quantidade de balas que faltava
Munition = Munition + MunitionDif; //Enche o pente com a quantidade de balas que faltava
MunitionExtText.text = "" + MunitionExt;
BulletText.text = "" + Munition;
}
}
}
}
Tenho esse.
using System.Collections;
using UnityEngine.UI;
public class M16GlFire : MonoBehaviour {
public GameObject Bullet;
public Transform InstaPosition;
private float TripTime;
public float Waitingtime;
public int Munition; //Munição atual no pente
public int MunitionMax; //Munição máxima por pente
public int MunitionExt; //Munição extra
public AudioClip shotSound;
public int combs;
public GameObject Flare;
//HudTexts
public Text BulletText;
public Text MunitionExtText;
void Start() {
combs = 3;
MunitionExt = 90;
MunitionMax = 30; //Defini a munição máxima por pente nessa arma
Munition = 30;
TripTime = 3;
BulletText.text = "" + Munition;
MunitionExtText.text = "" + MunitionExt;
}
void Update () {
TripTime += Time.deltaTime;
if(TripTime >= Waitingtime){
if(Munition >= 1 ){
if(Munition <= 30 ){
if(MunitionExt >=1){}
if(Input.GetButton("Fire1")) {
Instantiate(Bullet,InstaPosition.position, InstaPosition.rotation);
Instantiate(Flare,InstaPosition.position, InstaPosition.rotation);
Munition --;
TripTime = 0;
//HudTexts
MunitionExtText.text = "" + MunitionExt;
BulletText.text = "" + Munition;
GetComponent<AudioSource>().clip = shotSound;
GetComponent<AudioSource>().Play();
}
}
}
}
//HudTexts
if(Input.GetKeyDown(KeyCode.R)){
int MunitionDif = MunitionMax - Munition; //Quantas balas estão faltando nesse pente.
if(MunitionDif > 0 && MunitionExt > 0){ //Se está faltando balas no pente e Tem munição extra
if(MunitionExt < MunitionDif){ //Se tem munição extra não é suficiente para encher o pente
MunitionDif = MunitionExt; //Já que não tm munição suficiente para encher, então vamos pegar as que tem
}
MunitionExt = MunitionExt - MunitionDif; //Pega a quantidade de balas que faltava
Munition = Munition + MunitionDif; //Enche o pente com a quantidade de balas que faltava
MunitionExtText.text = "" + MunitionExt;
BulletText.text = "" + Munition;
}
}
}
}
Tenho esse.
ALS863244- Iniciante
- PONTOS : 3383
REPUTAÇÃO : 0
Respeito as regras :
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Más este sistema não está funcional, creio eu...
Tem alguns problemas como GetComponents não especificados
Tem alguns problemas como GetComponents não especificados
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Eu estou usando ele e esta funcionando normalmente, Nao esta dando nem um erro, Como faco pra adicionar o random.range?
ALS863244- Iniciante
- PONTOS : 3383
REPUTAÇÃO : 0
Respeito as regras :
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Estranho não dar erros, por que você está utilizando:
Isto no Update, obrigatoriamente vai dar erro se você não especificar qual componente está utilizando...
A Unity nem aceita os comandos .clip e .Play sem estar com o componente AudioSource já especificado...
a correção ficaria assim:
Quanto ao random, ele deve ser feito na sua função de Instantiate, já que é assim que você está fazendo o sistema de tiros...
No instantiate, você instancia na posição (InstaPosition.position)
você deve instanciar nesta posição, só que com um acrecimo randomico nos eixos X e Y, ficando algo +/- assim:
Eu faço um Vector2 randomico em X e Y, que vai de -1 a 1
depois acrescento esses valores na posição onde o objeto vai ser instanciado
- Código:
GetComponent().clip = shotSound;
GetComponent().Play();
Isto no Update, obrigatoriamente vai dar erro se você não especificar qual componente está utilizando...
A Unity nem aceita os comandos .clip e .Play sem estar com o componente AudioSource já especificado...
a correção ficaria assim:
- Código:
GetComponent<AudioSource>().clip = shotSound;
GetComponent<AudioSource>().Play();
Quanto ao random, ele deve ser feito na sua função de Instantiate, já que é assim que você está fazendo o sistema de tiros...
No instantiate, você instancia na posição (InstaPosition.position)
você deve instanciar nesta posição, só que com um acrecimo randomico nos eixos X e Y, ficando algo +/- assim:
- Código:
Vector2 random = new Vector2(Random.Range(-1,1),Random.Range(-1,1));
Vector3 posicao = new Vector3(InstaPosition.transform.position.x+random.x,InstaPosition.transform.position.y+random.y,InstaPosition.transform.position.z);
Instantiate(Bullet,posicao, InstaPosition.rotation);
Eu faço um Vector2 randomico em X e Y, que vai de -1 a 1
depois acrescento esses valores na posição onde o objeto vai ser instanciado
Re: (Duvida) Sistema de Precisao Para Jogos FPS
Funcionou, Obrigado Marcos ; e em relacao aos GetComponent Aqui nao esta dando nem um Erro, mas vou fazer as alteracoes
E mais Uma vez Obrigado, Ajudou muito!
E mais Uma vez Obrigado, Ajudou muito!
ALS863244- Iniciante
- PONTOS : 3383
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» [DUVIDA] Da para colocar anúncios em jogos para PC ?
» Sistema de Localization " Multi Idiomas para jogos"
» dúvida para fazer sistema de som de passos em terreno
» [Dúvida] Colliders para jogos de corrida
» ARPG & GoodMotion Update - Sistema para jogos MMORPG e Hack and Slash.
» Sistema de Localization " Multi Idiomas para jogos"
» dúvida para fazer sistema de som de passos em terreno
» [Dúvida] Colliders para jogos de corrida
» ARPG & GoodMotion Update - Sistema para jogos MMORPG e Hack and Slash.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos