[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
+32
TDM Corp
Pedriin646
eddesigner
alangamepla7
yan187
GabrielGelbcke
KinGuih
QAGames
DUCKS224
recagonlei
NKKF
Takuiash
Gabriel César O
DuViDoSo
AndyShow
Claudineioliveira
Alone12345
Callyde Jr
MarcosSchultz
matusalemHD216
tom ramber
dstaroski
bymaxbig
edu094
PrimeStudio
bruxamissi
ismaelalvares
exgame2016
osiasbezerra
Madness
NOME-ALEATORIO
Eduardoro39
36 participantes
Página 2 de 2
Página 2 de 2 • 1, 2
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Tambem queria saber...animaçao nas armas e no inimigo ao morrer...
tom ramber- Avançado
- PONTOS : 3139
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Eu acho que as animações vc poderia usar algum programa como o Mixamo(tem um site), ou usar o animator da unity/blender
matusalemHD216- Iniciante
- PONTOS : 3040
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Eu tenho as animaçoes nas armas com as maos para FTP, Reload,Fire e Draw
Tentei usar o Animator nao deu certo temtei o Animation mais tambem nao deu,
Tentei usar o Animator nao deu certo temtei o Animation mais tambem nao deu,
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Bom dia brow! posta ai por gentileza o script de como você ta tentando usar essas animações.Callyde Jr escreveu:Eu tenho as animaçoes nas armas com as maos para FTP, Reload,Fire e Draw
Tentei usar o Animator nao deu certo temtei o Animation mais tambem nao deu,
Abraço!
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Boa tarde brow! estou tentando colocar nesse script do Marcos de varias arma e esse
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
[Serializable]
public class LaserOuMira{
public bool ativarLaser = false;
public Color corLaser = Color.red;
public bool AtivarMiraComum = true;
}
[Serializable]
public class Arma919{
[HideInInspector]
public int balasExtra, balasNoPente;
//
public int danoPorTiro = 40;
[Range(65,500)]
public int numeroDeBalas = 240;
[Range(1,50)]
public int balasPorPente = 30;
[Range(0.01f,5.0f)]
public float tempoPorTiro = 0.3f;
[Range(0.01f,5.0f)]
public float tempoDaRecarga = 0.5f;
[Space(10)]
public LaserOuMira Miras;
[Space(10)]
public GameObject objetoArma;
public GameObject lugarParticula;
public GameObject particulaFogo;
public AudioClip somTiro, somRecarga;
string drawAnim = "Draw";
string fireLeftAnim = "Fire";
string reloadAnim = "Reload";
GameObject animationGO;
}
[RequireComponent(typeof(AudioSource))]
public class Atirar : MonoBehaviour {
public KeyCode botaoRecarregar = KeyCode.R;
public int armaInicial = 0;
public string TagInimigo = "inimigo";
public Text BalasPente, BalasExtra;
public Material MaterialLasers;
public Arma919[] armas;
//
int armaAtual;
AudioSource emissorSom;
bool recarregando, atirando;
LineRenderer linhaDoLaser;
GameObject luzColisao;
void Start () {
//laser das armas
luzColisao = new GameObject ();
luzColisao.AddComponent<Light> ();
luzColisao.GetComponent<Light> ().intensity = 8;
luzColisao.GetComponent<Light> ().bounceIntensity = 8;
luzColisao.GetComponent<Light> ().range = 0.2f;
luzColisao.GetComponent<Light> ().color = Color.red;
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
lineRenderer.material = MaterialLasers;
lineRenderer.SetColors (Color.white, Color.white);
lineRenderer.SetWidth (0.015f, 0.05f);
lineRenderer.SetVertexCount (2);
linhaDoLaser = GetComponent<LineRenderer> ();
//
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
armas [x].balasExtra = armas [x].numeroDeBalas - armas [x].balasPorPente;
armas [x].balasNoPente = armas [x].balasPorPente;
armas [x].Miras.corLaser.a = 1;
}
if (armaInicial > armas.Length-1) {
armaInicial = armas.Length-1;
}
armas [armaInicial].objetoArma.SetActive (true);
armas [armaInicial].lugarParticula.SetActive (true);
armaAtual = armaInicial;
emissorSom = GetComponent<AudioSource> ();
recarregando = atirando = false;
}
void Update () {
//UI
BalasExtra.text = "BalasExtra: " + armas[armaAtual].balasExtra;
BalasPente.text = "BalasNoPente: " + armas[armaAtual].balasNoPente;
//troca de armas
if (Mathf.Abs (Input.GetAxis ("Mouse ScrollWheel")) > 0 && recarregando == false && atirando == false) {
if(Input.GetAxis ("Mouse ScrollWheel") > 0){
armaAtual++;
}
if(Input.GetAxis ("Mouse ScrollWheel") < 0){
armaAtual--;
}
if (armaAtual < 0) {
armaAtual = armas.Length - 1;
}
if (armaAtual > armas.Length - 1) {
armaAtual = 0;
}
AtivarArmaAtual ();
}
//atirar
if (Input.GetMouseButtonDown (0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false) {
atirando = true;
StartCoroutine (TempoTiro (armas [armaAtual].tempoPorTiro));
emissorSom.clip = armas [armaAtual].somTiro;
emissorSom.PlayOneShot (emissorSom.clip);
armas [armaAtual].balasNoPente--;
GameObject balaTemp = Instantiate (armas [armaAtual].particulaFogo, armas [armaAtual].lugarParticula.transform.position, transform.rotation) as GameObject;
Destroy (balaTemp, 0.5f);
//
RaycastHit pontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out pontoDeColisao)) {
if (pontoDeColisao.transform.gameObject.tag == TagInimigo) {
pontoDeColisao.transform.gameObject.GetComponent<Inimigo> ().vida -= armas[armaAtual].danoPorTiro;
}
}
}
//recarregar
if (Input.GetKeyDown (botaoRecarregar) && recarregando == false && atirando == false && (armas[armaAtual].balasNoPente < armas[armaAtual].balasPorPente) && (armas [armaAtual].balasExtra > 0)) {
emissorSom.clip = armas [armaAtual].somRecarga;
emissorSom.PlayOneShot (emissorSom.clip);
int todasAsBalas = armas [armaAtual].balasNoPente + armas [armaAtual].balasExtra;
if (todasAsBalas >= armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
armas [armaAtual].balasExtra = todasAsBalas - armas [armaAtual].balasPorPente;
} else {
armas [armaAtual].balasNoPente = todasAsBalas;
armas [armaAtual].balasExtra = 0;
}
recarregando = true;
StartCoroutine (TempoRecarga(armas[armaAtual].tempoDaRecarga));
}
//laser da arma
if (recarregando == false) {
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.enabled = true;
linhaDoLaser.material.SetColor ("_TintColor", armas [armaAtual].Miras.corLaser);
luzColisao.SetActive (true);
Vector3 PontoFinalDoLaser = transform.position + (transform.forward * 500);
RaycastHit hitDoLaser;
if (Physics.Raycast (transform.position, transform.forward, out hitDoLaser, 500)) {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, hitDoLaser.point);
float distancia = Vector3.Distance (transform.position, hitDoLaser.point) - 0.03f;
luzColisao.transform.position = transform.position + transform.forward * distancia;
} else {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, PontoFinalDoLaser);
luzColisao.transform.position = PontoFinalDoLaser;
}
}
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
//checar limites da municao
if (armas [armaAtual].balasNoPente > armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
}else if (armas [armaAtual].balasNoPente < 0) {
armas [armaAtual].balasNoPente = 0;
}
int numBalasExtra = armas [armaAtual].numeroDeBalas - armas [armaAtual].balasPorPente;
if (armas [armaAtual].balasExtra > numBalasExtra) {
armas [armaAtual].balasExtra = numBalasExtra;
}else if (armas [armaAtual].balasExtra < 0) {
armas [armaAtual].balasExtra = 0;
}
}
IEnumerator TempoTiro(float tempoDoTiro){
yield return new WaitForSeconds (tempoDoTiro);
atirando = false;
}
IEnumerator TempoRecarga(float tempoAEsperar){
yield return new WaitForSeconds (tempoAEsperar);
recarregando = false;
}
void AtivarArmaAtual(){
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
}
armas [armaAtual].objetoArma.SetActive (true);
armas [armaAtual].lugarParticula.SetActive (true);
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.material.color = armas [armaAtual].Miras.corLaser;
linhaDoLaser.enabled = true;
luzColisao.SetActive (true);
luzColisao.GetComponent<Light> ().color = armas [armaAtual].Miras.corLaser;
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
}
void OnGUI(){
if (armas [armaAtual].Miras.AtivarMiraComum == true) {
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label (new Rect (Screen.width / 2-6, Screen.height / 2-12, 12, 22), "+");
}
}
}
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Boa tarde cara! Você usa o animator ou animações legacy? Se for com animator, se deve implementar os parâmetros conforme ele, ou no caso do Legacy, não tenho como testar aqui, mas lembro que o comando era"GetComponent<Animation>().Play("nomedaanimação"); sendo que o objeto a qual possui o script com esse parâmetro, tem que estar com o componente Animation no inspector, e anexado a ele as animações, e esses clipes de animação setados como Legacy. Agora tem que testar cara, e tem que ver o seguinte, não entendo muito de animação, mas acredito que para funcionar certinho, as armas com suas animações tem que ser parente do player na qual está anexada o script principal e com os códigos para executar as animações, caros Animadores, se estou falando besteira, favor me corrijam, pois nadar em praia estranha é meio perigoso.
Abraço!
Abraço!
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Vou tentar aqui amigo era desse jeito que eu estva fazendo mais quando coloco para a animaçao acontecer nao acontecer nada obrigado vou tentar aqui se eu conseguir eu falo aqui blz
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
O script que esta na armas para a animaçoes e esse estou tentando liga-lo a esse sistema de varias armas
- Código:
using UnityEngine;
using System.Collections;
public class Animarm : MonoBehaviour {
string drawAnim = "Draw";
string fireLeftAnim = "Fire";
string reloadAnim = "Reload";
GameObject animationGO;
private bool drawWeapon = false;
private bool reloading = false;
void Start (){
DrawWeapon();
}
void Update (){
if(Input.GetButtonDown ("Fire1") && reloading == false && drawWeapon == false){
Fire();
}
if (Input.GetKeyDown ("r") && reloading == false && drawWeapon == false){
Reloading();
}
if (Input.GetKeyDown ("1") && reloading == false){
DrawWeapon();
}
}
void Fire (){
animationGO.GetComponent.<Animation>().CrossFadeQueued(fireLeftAnim, 0.08f, QueueMode.PlayNow);
}
void DrawWeapon (){
if(drawWeapon)
return;
animationGO.GetComponent.<Animation>().Play(drawAnim);
drawWeapon = true;
yield return new WaitForSeconds(0.6f);
drawWeapon = false;
}
void Reloading (){
if(reloading) return;
animationGO.GetComponent.<Animation>().Play(reloadAnim);
reloading = true;
yield return new WaitForSeconds(2.0f);
reloading = false;
}
}
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
É difícil implementar um sistema no outro, pois ele teria que ser parcialmente refeito, por causa dos tempos de tiro, tempos de recarga e tudo mais, tornando compatível com qualquer animação...
Existe um ajuste dos tempos, mas não é o ideal
Existe um ajuste dos tempos, mas não é o ideal
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Entao a melhor maneira e usar os 2 e desativar o script de animaçoes com o script de atirar quando a bala acabar ?
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Não tem muito como usar os 2... você vai ter que refazer um deles para se adaptar... ativar ou desativar script vai causar erros na contagem de munições
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Hummmm entendi eu estava usando os 2 scripts quando eu atiro ou recarego as animaçoes funcionam mais quando acaba as balas elas funcionam, estava tentando desativalas de um script pra o outro
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Como eu faço para Adicionar mais armas por outro script??
Alone12345- Iniciante
- PONTOS : 2922
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Alone12345 escreveu:Como eu faço para Adicionar mais armas por outro script??
Teria que reformular o script.
O script atual é alterável pelo inspector por que eu usei Array... Para adicionar armas por outro script você teria que ter uma <list> em vez de uma array, e isto envolve mudar o código todo.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
No meu não está conseguindo acessar os audiosource do tiro e recarga. mais alguem com este erro?
segue a mensagem do erro:
MissingComponentException: There is no 'AudioSource' attached to the "FirstPersonCharacter" game object, but a script is trying to access it.
You probably need to add a AudioSource to the game object "FirstPersonCharacter". Or your script needs to check if the component is attached before using it.
Atirar.Update () (at Assets/Scripts/Atirar.cs:120) .
Eu dei uma olhada no codigo mas n consegui achar arros
segue a mensagem do erro:
MissingComponentException: There is no 'AudioSource' attached to the "FirstPersonCharacter" game object, but a script is trying to access it.
You probably need to add a AudioSource to the game object "FirstPersonCharacter". Or your script needs to check if the component is attached before using it.
Atirar.Update () (at Assets/Scripts/Atirar.cs:120) .
Eu dei uma olhada no codigo mas n consegui achar arros
Claudineioliveira- Iniciante
- PONTOS : 2853
REPUTAÇÃO : 0
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
You probably need to add a AudioSource to the game object "FirstPersonCharacter"
Simples...Ele só esta pedindo pra vc Adicionar o Componente AudioSource no seu Player!
Simples...Ele só esta pedindo pra vc Adicionar o Componente AudioSource no seu Player!
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Marcos em como deixar as algumas das armas automaticas? iria me ajudar muito obrigado.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
desculpa peloa nubada no portuguesDuViDoSo34 escreveu:Marcos em como deixar as algumas das armas automaticas? iria me ajudar muito obrigado.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Posso atualizar o sistema, mas não sei quando vou conseguir um tempo livre... vou anotar aqui
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
ok. nn precisa ter pressa. vlw.MarcosSchultz escreveu:Posso atualizar o sistema, mas não sei quando vou conseguir um tempo livre... vou anotar aqui
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
MUITO TOP! ESSE TUTORIAL ME AJUDOU MUITO EM MEU PROJETO! ABRAÇO E SUCESSO! PARABÉNS!
Gabriel César O- Profissional
- PONTOS : 3985
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Eu queria saber como que eu pego a informação da munição e pega ela em outro script..
to tentando fazer isso mais o valor fica sempre em 0
to tentando fazer isso mais o valor fica sempre em 0
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
[Serializable]
public class LaserOuMira{
public bool ativarLaser = false;
public Color corLaser = Color.red;
public bool AtivarMiraComum = true;
}
[Serializable]
public class Arma919{
[HideInInspector]
public int balasExtra, balasNoPente;
//
public int danoPorTiro = 40;
[Range(65,500)]
public int numeroDeBalas = 240;
[Range(1,50)]
public int balasPorPente = 30;
[Range(0.01f,5.0f)]
public float tempoPorTiro = 0.3f;
[Range(0.01f,5.0f)]
public float tempoDaRecarga = 0.5f;
[Space(10)]
public LaserOuMira Miras;
[Space(10)]
public GameObject objetoArma;
public GameObject lugarParticula;
public GameObject particulaFogo;
public AudioClip somTiro, somRecarga;
}
[RequireComponent(typeof(AudioSource))]
public class Atirar : MonoBehaviour {
public KeyCode botaoRecarregar = KeyCode.R;
public int armaInicial = 0;
public string TagInimigo = "inimigo";
public Material MaterialLasers;
public Arma919[] armas;
//
int armaAtual;
AudioSource emissorSom;
bool recarregando, atirando;
LineRenderer linhaDoLaser;
GameObject luzColisao;
public float munisaopente;
public float minisao2;
void Start () {
munisaopente = armas[armaAtual].balasNoPente;
minisao2 = armas[armaAtual].balasExtra;
//laser das armas
luzColisao = new GameObject ();
luzColisao.AddComponent<Light> ();
luzColisao.GetComponent<Light> ().intensity = 8;
luzColisao.GetComponent<Light> ().bounceIntensity = 8;
luzColisao.GetComponent<Light> ().range = 0.2f;
luzColisao.GetComponent<Light> ().color = Color.red;
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
lineRenderer.material = MaterialLasers;
lineRenderer.SetColors (Color.white, Color.white);
lineRenderer.SetWidth (0.015f, 0.05f);
lineRenderer.SetVertexCount (2);
linhaDoLaser = GetComponent<LineRenderer> ();
//
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
armas [x].balasExtra = armas [x].numeroDeBalas - armas [x].balasPorPente;
armas [x].balasNoPente = armas [x].balasPorPente;
armas [x].Miras.corLaser.a = 1;
}
if (armaInicial > armas.Length-1) {
armaInicial = armas.Length-1;
}
armas [armaInicial].objetoArma.SetActive (true);
armas [armaInicial].lugarParticula.SetActive (true);
armaAtual = armaInicial;
emissorSom = GetComponent<AudioSource> ();
recarregando = atirando = false;
}
void Update () {
//UI
//troca de armas
if (Mathf.Abs (Input.GetAxis ("Mouse ScrollWheel")) > 0 && recarregando == false && atirando == false) {
if(Input.GetAxis ("Mouse ScrollWheel") > 0){
armaAtual++;
}
if(Input.GetAxis ("Mouse ScrollWheel") < 0){
armaAtual--;
}
if (armaAtual < 0) {
armaAtual = armas.Length - 1;
}
if (armaAtual > armas.Length - 1) {
armaAtual = 0;
}
AtivarArmaAtual ();
}
//atirar
if (Input.GetMouseButtonDown (0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false) {
atirando = true;
StartCoroutine (TempoTiro (armas [armaAtual].tempoPorTiro));
emissorSom.clip = armas [armaAtual].somTiro;
emissorSom.PlayOneShot (emissorSom.clip);
armas [armaAtual].balasNoPente--;
GameObject balaTemp = Instantiate (armas [armaAtual].particulaFogo, armas [armaAtual].lugarParticula.transform.position, transform.rotation) as GameObject;
Destroy (balaTemp, 0.5f);
//
RaycastHit pontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out pontoDeColisao)) {
if (pontoDeColisao.transform.gameObject.tag == TagInimigo) {
pontoDeColisao.transform.gameObject.GetComponent<Inimigo> ().vida -= armas[armaAtual].danoPorTiro;
}
}
}
//recarregar
if (Input.GetKeyDown (botaoRecarregar) && recarregando == false && atirando == false && (armas[armaAtual].balasNoPente < armas[armaAtual].balasPorPente) && (armas [armaAtual].balasExtra > 0)) {
emissorSom.clip = armas [armaAtual].somRecarga;
emissorSom.PlayOneShot (emissorSom.clip);
int todasAsBalas = armas [armaAtual].balasNoPente + armas [armaAtual].balasExtra;
if (todasAsBalas >= armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
armas [armaAtual].balasExtra = todasAsBalas - armas [armaAtual].balasPorPente;
} else {
armas [armaAtual].balasNoPente = todasAsBalas;
armas [armaAtual].balasExtra = 0;
}
recarregando = true;
StartCoroutine (TempoRecarga(armas[armaAtual].tempoDaRecarga));
}
//laser da arma
if (recarregando == false) {
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.enabled = true;
linhaDoLaser.material.SetColor ("_TintColor", armas [armaAtual].Miras.corLaser);
luzColisao.SetActive (true);
Vector3 PontoFinalDoLaser = transform.position + (transform.forward * 500);
RaycastHit hitDoLaser;
if (Physics.Raycast (transform.position, transform.forward, out hitDoLaser, 500)) {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, hitDoLaser.point);
float distancia = Vector3.Distance (transform.position, hitDoLaser.point) - 0.03f;
luzColisao.transform.position = transform.position + transform.forward * distancia;
} else {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, PontoFinalDoLaser);
luzColisao.transform.position = PontoFinalDoLaser;
}
}
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
//checar limites da municao
if (armas [armaAtual].balasNoPente > armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
}else if (armas [armaAtual].balasNoPente < 0) {
armas [armaAtual].balasNoPente = 0;
}
int numBalasExtra = armas [armaAtual].numeroDeBalas - armas [armaAtual].balasPorPente;
if (armas [armaAtual].balasExtra > numBalasExtra) {
armas [armaAtual].balasExtra = numBalasExtra;
}else if (armas [armaAtual].balasExtra < 0) {
armas [armaAtual].balasExtra = 0;
}
}
IEnumerator TempoTiro(float tempoDoTiro){
yield return new WaitForSeconds (tempoDoTiro);
atirando = false;
}
IEnumerator TempoRecarga(float tempoAEsperar){
yield return new WaitForSeconds (tempoAEsperar);
recarregando = false;
}
void AtivarArmaAtual(){
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
}
armas [armaAtual].objetoArma.SetActive (true);
armas [armaAtual].lugarParticula.SetActive (true);
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.material.color = armas [armaAtual].Miras.corLaser;
linhaDoLaser.enabled = true;
luzColisao.SetActive (true);
luzColisao.GetComponent<Light> ().color = armas [armaAtual].Miras.corLaser;
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
}
void OnGUI(){
if (armas [armaAtual].Miras.AtivarMiraComum == true) {
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label (new Rect (Screen.width / 2-6, Screen.height / 2-12, 12, 22), "+");
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class Jogador : MonoBehaviour {
public GUISkin s1;
public GameObject SpawnPlayer;
public GameObject Player;
public GameObject Atirara;
public float Life;
bool podeNascer;
float municao;
float municaopente;
// Use this for initialization
void Start () {
podeNascer = false;
transform.tag = "Player";
}
// Update is called once per frame
void Update () {
Atirara.GetComponent<Atirar>().minisao2 = municao;
Atirara.GetComponent<Atirar>().munisaopente = municaopente;
if(podeNascer == true){
GameObject.Instantiate(Player);
}
if(Life <= 0){
Morte();
}
}
void Morte () {
GameObject.Instantiate(SpawnPlayer);
GameObject.Destroy(Player);
}
void OnGUI (){
GUI.skin = s1;
GUI.Box(new Rect(Screen.width/1 -130, Screen.height / 1 -60, 120, 50), "Vida: " + Life);
GUI.Box(new Rect(Screen.width/1 -340, Screen.height / 1 -60, 200, 50), "Munição: " + municao + "/" + municaopente);
}
}
Takuiash- Iniciante
- PONTOS : 2635
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Acabei de descobrir que com eu colocando da forma que você colocou com texto por ui tambem ta dando valor 0
https://imgur.com/a/yVnLg
https://imgur.com/a/yVnLg
Takuiash- Iniciante
- PONTOS : 2635
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Alguem pode me explicar por que não está dando certo? e como eu poderia fazer para funcionar? obrigado.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Olá, você recebe algum tipo de erro?DuViDoSo escreveu:
Alguem pode me explicar por que não está dando certo? e como eu poderia fazer para funcionar? obrigado.
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Sim, este erro. O que tenho que alterar para que funcione, quero um dano aleatório e não sempre igual.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Existe a classe Random tanto para o UnityEngine, quanto para o System, para isso use o desejado na função, ex:
ou
- Código:
UnityEngine.Random.Range(0, 4);
ou
- Código:
System.Random.Range(0, 4);
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
ME AJUDA!! PFV
O meu script atirar não ta indo
O meu script atirar não ta indo
DUCKS224- Iniciante
- PONTOS : 1947
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
DUCKS224 escreveu:ME AJUDA!! PFV
O meu script atirar não ta indo
Alguma imagem do problema? Aparece algum erro? Seguiu o tutorial passo a passo?
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Alguém me da uma forcinha por favor, estou tendo esse erro
https://prnt.sc/oz7g0g
alguém sabe resolver?
https://prnt.sc/oz7g0g
alguém sabe resolver?
QAGames- Iniciante
- PONTOS : 1927
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
QAGames escreveu:Alguém me da uma forcinha por favor, estou tendo esse erro
https://prnt.sc/oz7g0g
alguém sabe resolver?
Nas primeiras linha do script vai estar assim
- Código:
using UnityEngine;
using System.Collections;
using System;
Você deve adicionar a biblioteca UI assim
- Código:
using UnityEngine;
using System.Collections;
using System;
using UnityEngine.UI;
Ou talvez seja a versão da sua unity que é antiga ,dai você remove essa linha se não me engano.
Espero ter ajudado.
KinGuih- Iniciante
- PONTOS : 1909
REPUTAÇÃO : 1
Idade : 26
Áreas de atuação : Um pouco de C# e modelagem 3D
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
KinGuih escreveu:QAGames escreveu:Alguém me da uma forcinha por favor, estou tendo esse erro
https://prnt.sc/oz7g0g
alguém sabe resolver?
Nas primeiras linha do script vai estar assim
- Código:
using UnityEngine;
using System.Collections;
using System;
Você deve adicionar a biblioteca UI assim
- Código:
using UnityEngine;
using System.Collections;
using System;
using UnityEngine.UI;
Ou talvez seja a versão da sua unity que é antiga ,dai você remove essa linha se não me engano.
Espero ter ajudado.
Obrigado, foi só eu atualizar uma versão a frente e funcionou tudo direitinho!
QAGames- Iniciante
- PONTOS : 1927
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Opa amigo eu gostaria de saber como que faria para ao invés de mudar a arma pelo scroll do mouse, mudar pelo 1,2,3,4,5,6,7,8,9,0 ou Z,X,C,V,B,N,M.
E tem como também só ver e atirar com a arma se eu pegar ela no chão como a caixa de munição???
Não sei como fazer isso por favor ajuda ai
E tem como também só ver e atirar com a arma se eu pegar ela no chão como a caixa de munição???
Não sei como fazer isso por favor ajuda ai
GabrielGelbcke- Iniciante
- PONTOS : 1885
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
GabrielGelbcke escreveu:Opa amigo eu gostaria de saber como que faria para ao invés de mudar a arma pelo scroll do mouse, mudar pelo 1,2,3,4,5,6,7,8,9,0 ou Z,X,C,V,B,N,M.
E tem como também só ver e atirar com a arma se eu pegar ela no chão como a caixa de munição???
Não sei como fazer isso por favor ajuda ai
meu jogo -> http://prntscr.com/pel376
GabrielGelbcke- Iniciante
- PONTOS : 1885
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
ajuda no Script Atirar esta dando
IndexOutOfRangeException: Index was outside the bounds of the array.
Atirar.OnGUI () (at Assets/Scenes/SCRIP/Atirar.cs:201)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
IndexOutOfRangeException: Index was outside the bounds of the array.
Atirar.OnGUI () (at Assets/Scenes/SCRIP/Atirar.cs:201)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
yan187- Iniciante
- PONTOS : 1705
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
MarcosSchultz escreveu:.É EXTREMAMENTE NECESSÁRIO ASSISTIR O VÍDEO PARA SABER UTILIZAR OS SCRIPTS
Vídeo tutorial:
Script Atirar:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
[Serializable]
public class LaserOuMira{
public bool ativarLaser = false;
public Color corLaser = Color.red;
public bool AtivarMiraComum = true;
}
[Serializable]
public class Arma919{
[HideInInspector]
public int balasExtra, balasNoPente;
//
public int danoPorTiro = 40;
[Range(65,500)]
public int numeroDeBalas = 240;
[Range(1,50)]
public int balasPorPente = 30;
[Range(0.01f,5.0f)]
public float tempoPorTiro = 0.3f;
[Range(0.01f,5.0f)]
public float tempoDaRecarga = 0.5f;
[Space(10)]
public LaserOuMira Miras;
[Space(10)]
public GameObject objetoArma;
public GameObject lugarParticula;
public GameObject particulaFogo;
public AudioClip somTiro, somRecarga;
}
[RequireComponent(typeof(AudioSource))]
public class Atirar : MonoBehaviour {
public KeyCode botaoRecarregar = KeyCode.R;
public int armaInicial = 0;
public string TagInimigo = "inimigo";
public Text BalasPente, BalasExtra;
public Material MaterialLasers;
public Arma919[] armas;
//
int armaAtual;
AudioSource emissorSom;
bool recarregando, atirando;
LineRenderer linhaDoLaser;
GameObject luzColisao;
void Start () {
//laser das armas
luzColisao = new GameObject ();
luzColisao.AddComponent<Light> ();
luzColisao.GetComponent<Light> ().intensity = 8;
luzColisao.GetComponent<Light> ().bounceIntensity = 8;
luzColisao.GetComponent<Light> ().range = 0.2f;
luzColisao.GetComponent<Light> ().color = Color.red;
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
lineRenderer.material = MaterialLasers;
lineRenderer.SetColors (Color.white, Color.white);
lineRenderer.SetWidth (0.015f, 0.05f);
lineRenderer.SetVertexCount (2);
linhaDoLaser = GetComponent<LineRenderer> ();
//
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
armas [x].balasExtra = armas [x].numeroDeBalas - armas [x].balasPorPente;
armas [x].balasNoPente = armas [x].balasPorPente;
armas [x].Miras.corLaser.a = 1;
}
if (armaInicial > armas.Length-1) {
armaInicial = armas.Length-1;
}
armas [armaInicial].objetoArma.SetActive (true);
armas [armaInicial].lugarParticula.SetActive (true);
armaAtual = armaInicial;
emissorSom = GetComponent<AudioSource> ();
recarregando = atirando = false;
}
void Update () {
//UI
BalasExtra.text = "BalasExtra: " + armas[armaAtual].balasExtra;
BalasPente.text = "BalasNoPente: " + armas[armaAtual].balasNoPente;
//troca de armas
if (Mathf.Abs (Input.GetAxis ("Mouse ScrollWheel")) > 0 && recarregando == false && atirando == false) {
if(Input.GetAxis ("Mouse ScrollWheel") > 0){
armaAtual++;
}
if(Input.GetAxis ("Mouse ScrollWheel") < 0){
armaAtual--;
}
if (armaAtual < 0) {
armaAtual = armas.Length - 1;
}
if (armaAtual > armas.Length - 1) {
armaAtual = 0;
}
AtivarArmaAtual ();
}
//atirar
if (Input.GetMouseButtonDown (0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false) {
atirando = true;
StartCoroutine (TempoTiro (armas [armaAtual].tempoPorTiro));
emissorSom.clip = armas [armaAtual].somTiro;
emissorSom.PlayOneShot (emissorSom.clip);
armas [armaAtual].balasNoPente--;
GameObject balaTemp = Instantiate (armas [armaAtual].particulaFogo, armas [armaAtual].lugarParticula.transform.position, transform.rotation) as GameObject;
Destroy (balaTemp, 0.5f);
//
RaycastHit pontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out pontoDeColisao)) {
if (pontoDeColisao.transform.gameObject.tag == TagInimigo) {
pontoDeColisao.transform.gameObject.GetComponent<Inimigo> ().vida -= armas[armaAtual].danoPorTiro;
}
}
}
//recarregar
if (Input.GetKeyDown (botaoRecarregar) && recarregando == false && atirando == false && (armas[armaAtual].balasNoPente < armas[armaAtual].balasPorPente) && (armas [armaAtual].balasExtra > 0)) {
emissorSom.clip = armas [armaAtual].somRecarga;
emissorSom.PlayOneShot (emissorSom.clip);
int todasAsBalas = armas [armaAtual].balasNoPente + armas [armaAtual].balasExtra;
if (todasAsBalas >= armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
armas [armaAtual].balasExtra = todasAsBalas - armas [armaAtual].balasPorPente;
} else {
armas [armaAtual].balasNoPente = todasAsBalas;
armas [armaAtual].balasExtra = 0;
}
recarregando = true;
StartCoroutine (TempoRecarga(armas[armaAtual].tempoDaRecarga));
}
//laser da arma
if (recarregando == false) {
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.enabled = true;
linhaDoLaser.material.SetColor ("_TintColor", armas [armaAtual].Miras.corLaser);
luzColisao.SetActive (true);
Vector3 PontoFinalDoLaser = transform.position + (transform.forward * 500);
RaycastHit hitDoLaser;
if (Physics.Raycast (transform.position, transform.forward, out hitDoLaser, 500)) {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, hitDoLaser.point);
float distancia = Vector3.Distance (transform.position, hitDoLaser.point) - 0.03f;
luzColisao.transform.position = transform.position + transform.forward * distancia;
} else {
linhaDoLaser.SetPosition (0, armas [armaAtual].lugarParticula.transform.position);
linhaDoLaser.SetPosition (1, PontoFinalDoLaser);
luzColisao.transform.position = PontoFinalDoLaser;
}
}
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
//checar limites da municao
if (armas [armaAtual].balasNoPente > armas [armaAtual].balasPorPente) {
armas [armaAtual].balasNoPente = armas [armaAtual].balasPorPente;
}else if (armas [armaAtual].balasNoPente < 0) {
armas [armaAtual].balasNoPente = 0;
}
int numBalasExtra = armas [armaAtual].numeroDeBalas - armas [armaAtual].balasPorPente;
if (armas [armaAtual].balasExtra > numBalasExtra) {
armas [armaAtual].balasExtra = numBalasExtra;
}else if (armas [armaAtual].balasExtra < 0) {
armas [armaAtual].balasExtra = 0;
}
}
IEnumerator TempoTiro(float tempoDoTiro){
yield return new WaitForSeconds (tempoDoTiro);
atirando = false;
}
IEnumerator TempoRecarga(float tempoAEsperar){
yield return new WaitForSeconds (tempoAEsperar);
recarregando = false;
}
void AtivarArmaAtual(){
for (int x = 0; x < armas.Length; x++) {
armas [x].objetoArma.SetActive (false);
armas [x].lugarParticula.SetActive (false);
}
armas [armaAtual].objetoArma.SetActive (true);
armas [armaAtual].lugarParticula.SetActive (true);
if (armas [armaAtual].Miras.ativarLaser == true) {
linhaDoLaser.material.color = armas [armaAtual].Miras.corLaser;
linhaDoLaser.enabled = true;
luzColisao.SetActive (true);
luzColisao.GetComponent<Light> ().color = armas [armaAtual].Miras.corLaser;
} else {
linhaDoLaser.enabled = false;
luzColisao.SetActive (false);
}
}
void OnGUI(){
if (armas [armaAtual].Miras.AtivarMiraComum == true) {
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label (new Rect (Screen.width / 2-6, Screen.height / 2-12, 12, 22), "+");
}
}
}
Script Inimigo:
- Código:
using UnityEngine;
using System.Collections;
public class Inimigo : MonoBehaviour {
public float vida = 100;
bool chamouMorte = false;
void Update () {
if (vida <= 0) {
vida = 0;
if (chamouMorte == false) {
chamouMorte = true;
StartCoroutine ("Morrer");
}
}
}
IEnumerator Morrer(){
GetComponent<MeshRenderer> ().material.color = Color.red;
yield return new WaitForSeconds (2);
Destroy (gameObject);
}
}
Script Municao:
- Código:
using UnityEngine;
using System.Collections;
public class Municao : MonoBehaviour {
public int numeroDeBalas = 30, numeroDaArma = 0;
public KeyCode TeclaPegarMunicao = KeyCode.E;
public AudioClip SomPegarMunicao;
public float distanciaDoItem = 3;
public Atirar ScriptAtirar;
bool podePegarOItem;
AudioSource emissorSom;
void Start(){
emissorSom = GetComponent<AudioSource> ();
}
void Update () {
float distancia = Vector3.Distance (transform.position, ScriptAtirar.gameObject.transform.position);
if (distancia < distanciaDoItem) {
podePegarOItem = true;
} else {
podePegarOItem = false;
}
if (Input.GetKeyDown (TeclaPegarMunicao) && podePegarOItem) {
int numBalasExtra = ScriptAtirar.armas [numeroDaArma].numeroDeBalas - ScriptAtirar.armas [numeroDaArma].balasPorPente;
if (ScriptAtirar.armas [numeroDaArma].balasExtra < numBalasExtra) {
ScriptAtirar.armas [numeroDaArma].balasExtra += numeroDeBalas;
GameObject emissorSom = new GameObject ();
emissorSom.AddComponent (typeof(AudioSource));
emissorSom.GetComponent<AudioSource> ().PlayOneShot (SomPegarMunicao);
Destroy (emissorSom.gameObject, 5);
Destroy (gameObject);
}
}
}
void OnGUI(){
if (podePegarOItem == true) {
GUIStyle stylez = new GUIStyle ();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label (new Rect (Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione: " + TeclaPegarMunicao);
}
}
}
tem como eu colocar alguma animação nesse script, eu tentei colocar a animação da arma atirando mas a animação n acontece
alangamepla7- Iniciante
- PONTOS : 1967
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Como você fez para colocar animação? Já viu algum tutorial sobre Animator?
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
eu tava vendo agr, vou ver se eu consigo colocar a animaçãoMarcosSchultz escreveu:Como você fez para colocar animação? Já viu algum tutorial sobre Animator?
alangamepla7- Iniciante
- PONTOS : 1967
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
valeu gostei deste codigo me ajudou muito .
sera que podes fazer um tutorial de inimigo atirando para o player, caso ja tenhas feito vou procurar. desculpe sou novo, obrigado .
sera que podes fazer um tutorial de inimigo atirando para o player, caso ja tenhas feito vou procurar. desculpe sou novo, obrigado .
eddesigner- Iniciante
- PONTOS : 1652
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
eu fiz igual no video mas n deu certo, eu coloquei uma condição do tipo bool chamada "Play" ai eu fiz igual no video, so q tipo, era pra quando eu apertar o botao do mouse o "Play" ficar true, e quando n apertar ficar false, mas n funciona, msm eu apertando fica false, foi esse codigo q eu useiMarcosSchultz escreveu:Como você fez para colocar animação? Já viu algum tutorial sobre Animator?
"if (input.getMouseButtonDown(0))
{
anim.setBool("Play", true);
} else anim.setBool("Play", false);" se poder me ajuda agradeço
alangamepla7- Iniciante
- PONTOS : 1967
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
alangamepla7 escreveu:eu fiz igual no video mas n deu certo, eu coloquei uma condição do tipo bool chamada "Play" ai eu fiz igual no video, so q tipo, era pra quando eu apertar o botao do mouse o "Play" ficar true, e quando n apertar ficar false, mas n funciona, msm eu apertando fica false, foi esse codigo q eu useiMarcosSchultz escreveu:Como você fez para colocar animação? Já viu algum tutorial sobre Animator?
"if (input.getMouseButtonDown(0))
{
anim.setBool("Play", true);
} else anim.setBool("Play", false);" se poder me ajuda agradeço
tente usar Input.GetMouseButton(0) e mantenha pressionado, veja o que acontece.
Ou deixe como está, mas tira esse else fora. Talvez o problema seja que está voltando para 0 muito rápidamente.
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Eae galera,
usei esse script do marcos, e não deu nenhum erro, mais quando eu clico para atirar nada acontece. o que pode ser?
OBS: to usando um controller de fps que n é da unity, será que isso da erro?
usei esse script do marcos, e não deu nenhum erro, mais quando eu clico para atirar nada acontece. o que pode ser?
OBS: to usando um controller de fps que n é da unity, será que isso da erro?
Pedriin646- Iniciante
- PONTOS : 1633
REPUTAÇÃO : 0
Idade : 21
Áreas de atuação : C#, PHP, HTML.
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Como eu atualizo essew script pra usar no mobile?
TDM Corp- Iniciante
- PONTOS : 2132
REPUTAÇÃO : 3
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Teria alguma forma de chamar uma animação de recoil? estou iniciando agora na unity e não tenho ideia de como fazer isso;-;
Charlesoff- MembroAvançado
- PONTOS : 1780
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Charlesoff escreveu:Teria alguma forma de chamar uma animação de recoil? estou iniciando agora na unity e não tenho ideia de como fazer isso;-;
É só voce criar uma animação e depois colocar o script. Olhe um exemplo:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PistolGun : MonoBehaviour {
public Animation recoilAnimation; //coloque sua animação aqui
void Start () {
}
void Update () {
if(Input.GetButton("Fire1")) //Coloque qualquer tecla que voce deseja que execute a animação
{
recoilAnimation.Play("Nome da Animação");
}
}
}
No começo desse post, eu explico como colocar uma animação: LINK
Pokedlg- ProgramadorMaster
- PONTOS : 2336
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
ou talvez tenho como colocar a animação do animatorcontroller tipo assim:Charlesoff escreveu:Teria alguma forma de chamar uma animação de recoil? estou iniciando agora na unity e não tenho ideia de como fazer isso;-;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Recoil : MonoBehaviour
{
public Animator animRecoil;
void Update()
{
if(Input.GetKeyDown("teclaquevcquiser"))
{
animRecoil.SetBool("NomedaAnimacao", true);
} else {
animRecoil.SetBool("NomadaAnimacao", false);
}
}
}
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
mas é só se você tiver feito a animação dentro do AnimatorController
Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
tem como fazer ela atirar no modo automático???
junio132sj- Iniciante
- PONTOS : 1124
REPUTAÇÃO : 0
Respeito as regras :
Página 2 de 2 • 1, 2
Tópicos semelhantes
» Tiro sistema dano
» Sistema de Tiro com Raycast
» Sistema de Tiro com Raycast
» [TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
» [TUTORIAL] Como criar tiro no Unity usando Raycast
» Sistema de Tiro com Raycast
» Sistema de Tiro com Raycast
» [TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
» [TUTORIAL] Como criar tiro no Unity usando Raycast
Página 2 de 2
Permissões neste sub-fórum
Não podes responder a tópicos