SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Stop Animation
Text to Speech ou outra sugestão
[RESOLVIDO] Como deixar sempre com dois dígitos
Como funciona esse script?!
multiplayer
[RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
[RESOLVIDO] VOID START???
Delay e ativar variavel de audio
DESLIGAR E LIGAR O CARRO
Como usar uma animação de uma arma animada na Unity...
[____ADMINISTRADOR OFFLINE____]
Animação
jogo quiz 2D unity 5...
Objeto ultrapassando Colisor
[DUVIDA] como melhorar a jogabilidade de um jogo 2D
(Dúvida) Objeto receber posição do Raycast.
Alguém Para Dar Uma Avaliada no Meu Jogo de Terror :)
Personagem em 3ª pessoa
Projeto - IMU, terror de sobrevivência em primeira pessoa (estilo silent hill)
JUMP no estilo Subwey surf
Auxilio para script de Câmera
[TUTORIAL] AI Enemy ( Jogos de terror )
Criar varias funções de mesmo nome em um script
Como Que faço Para Quando Eu Reentrar no game o PlayerPrefs restaurar os dados salvos?
[ASSET] Cama Realista 3D + Download Grátis!
[RESOLVIDO] Meu Script Sumiu!
Como colocar arvores configuradas pelo terrain?
Duvida de camera
Problema de conexão com o fórum
Brasileiros podem usar o Unity ADS?
Desenvolvimento de game PokeGen MS - Vídeo e informações
Recarregador de arms
dúvida com variáveis
Câmera tipo Uncharted
Como verificar se a animação términou no animator
[TUTORIAL] Sistema COMPLETO de câmeras
Iluminação unity 5
Procuro membros para minha Equipe (Programadores, designers, etc)
Galera aki tenho um site com muitos models 3d
COMO COLOCO LANTERNA DE LED NO MEU JOGO DE BUS
DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
[____TÓPICO LIVRE____] FALE O QUE QUISER
SOBRE "IK" INVERSE KINEMATICS
Objeto ir para raycast
Duvida como instância um game objeto com Raycast
Problema Com Virtual Buttons Help me ;-;
GALERA PRECISO DE MODELADORES ,DESIGNER E PROGAMADORES PARA A MINHA EQUIPE DE UNITY 5
sobre build run no Android
e algum bug??
Tela rosa em jogos
Ajuda na script
[ajuda] câmera puxada
Duvida de script de controle
Não carrega próxima cena após finalizar cutscene
Duvida de script avançada
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Vocês poderiam avaliar meu jogo para Android? (30mb)
Ajuda com elementos UI
Ajuda com AI
Multiplayer com photon
[PEDIDO] Tutorial de Multiplayer
procuro equipe para meu jogo de bus
Formação de equipe para jogo estilo Days Gone (Campanha , Multiplayer) , (já está em criação)
AJUDA SCRIPT LUZ UNITY 5.5
3 Armas mediavais gratis, criada por min
Alguém poderia me ajudar a entender esse script
[TUTORIAL] Entrar no carro estilo GTA
Folha de Palmeira (Modelo 3D)
Procuro programadores para meu jogo
Duvida sobre pulo
unity pack
PROCURO EQUIPE PARA DESENVOLVER UM GAME NO ESTILO BOMBERMAN (ANTIGOS) ENTRAR EM CONTATO
Formação de equipes Bus Brasil
[JOGO] Dead Age(Em desenvolvimento).
Vcs ja publicaram algum game ou aplicativo na playstore?
Hoje à(s) 11:13 am
Hoje à(s) 10:34 am
Hoje à(s) 5:22 am
Hoje à(s) 4:36 am
Ontem à(s) 11:55 pm
Ontem à(s) 10:05 pm
Ontem à(s) 10:04 pm
Ontem à(s) 9:23 pm
Ontem à(s) 8:24 pm
Ontem à(s) 8:15 pm
Ontem à(s) 5:41 pm
Ontem à(s) 3:31 pm
Ontem à(s) 2:41 pm
Ontem à(s) 1:42 pm
Ontem à(s) 12:15 pm
Ontem à(s) 11:02 am
Ontem à(s) 10:21 am
Ontem à(s) 10:17 am
Ontem à(s) 9:58 am
Qua Jan 18, 2017 11:04 pm
Qua Jan 18, 2017 10:35 pm
Qua Jan 18, 2017 10:10 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 7:45 pm
Qua Jan 18, 2017 7:21 pm
Qua Jan 18, 2017 5:32 pm
Qua Jan 18, 2017 4:53 pm
Qua Jan 18, 2017 3:58 pm
Qua Jan 18, 2017 3:04 pm
Qua Jan 18, 2017 2:07 pm
Qua Jan 18, 2017 1:25 pm
Qua Jan 18, 2017 12:59 pm
Qua Jan 18, 2017 12:23 pm
Qua Jan 18, 2017 12:22 pm
Qua Jan 18, 2017 4:58 am
Ter Jan 17, 2017 8:57 pm
Ter Jan 17, 2017 8:17 pm
Ter Jan 17, 2017 6:54 pm
Ter Jan 17, 2017 5:13 pm
Ter Jan 17, 2017 4:33 pm
Ter Jan 17, 2017 2:17 pm
Ter Jan 17, 2017 1:19 pm
Ter Jan 17, 2017 12:54 pm
Ter Jan 17, 2017 11:57 am
Ter Jan 17, 2017 10:16 am
Ter Jan 17, 2017 7:54 am
Ter Jan 17, 2017 7:46 am
Seg Jan 16, 2017 9:06 pm
Seg Jan 16, 2017 6:54 pm
Seg Jan 16, 2017 5:21 pm
Seg Jan 16, 2017 5:12 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:10 pm
Seg Jan 16, 2017 5:05 pm
Seg Jan 16, 2017 5:03 pm
Seg Jan 16, 2017 3:01 pm
Seg Jan 16, 2017 2:02 pm
Seg Jan 16, 2017 12:02 pm
Seg Jan 16, 2017 10:53 am
Dom Jan 15, 2017 10:14 pm
Dom Jan 15, 2017 6:31 pm
Dom Jan 15, 2017 6:03 pm
Dom Jan 15, 2017 5:54 pm
Dom Jan 15, 2017 5:17 pm
Dom Jan 15, 2017 4:30 pm
Dom Jan 15, 2017 4:24 pm
Dom Jan 15, 2017 2:52 pm
Dom Jan 15, 2017 9:40 am
Dom Jan 15, 2017 9:06 am
Dom Jan 15, 2017 12:01 am
Sab Jan 14, 2017 8:06 pm
Sab Jan 14, 2017 5:53 pm
Sab Jan 14, 2017 10:38 am
AndyShow
AndyShow
AndyShow
AndyShow
hetrodo_gamer
Joker 22
lucasfera15
Manawydan
GustavoMaster
dstaroski
John Rambo
GustavoMaster
Kenji Haruno
GustavoMaster
poker14k
luKkaSs
dstaroski
AndyShow
joabr
poker14k
artplayer
Pedro Canassa Garcia
pablo10544
LegendGames
artplayer
AndyShow
artplayer
weslleyFx
Weverton Borges da Silva
Hardencio
AndyShow
Callyde Jr
AndyShow
John Rambo
John Rambo
MonsaM
John Rambo
dstaroski
MonsaM
John Rambo
LuizFixa3D
joabr
XavezZ
lucasfera15
R R
anizioNoob
dstaroski
dstaroski
John Rambo
Igor Melim
MarcosSchultz
MarcosSchultz
MarcosSchultz
joabr
MarcosSchultz
MarcosSchultz
marcos4503
sabbath
Callyde Jr
artplayer
Chilinger
Manawydan
Willian Wii
Pedro Canassa Garcia
MateusWTP
Willian Wii
tom ramber
RenanMSV
Willian Wii
AndyShow
dstaroski
Kaiky leandro
Kaiky leandro
ismarspn
Willian Wii

[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Ter Ago 09, 2016 12:27 am

.








É 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);
 }
 }
}


Última edição por MarcosSchultz em Qui Ago 11, 2016 12:12 am, editado 1 vez(es)

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Ter Ago 09, 2016 10:08 am

http://prntscr.com/c3im1m Error no 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 Arma{
    [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 Arma[] 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), "+");
        }
    }
}

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por NOME-ALEATORIO em Ter Ago 09, 2016 1:31 pm

Eduardoro39 escreveu:http://prntscr.com/c3im1m Error no 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 Arma{
    [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 Arma[] 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), "+");
        }
    }
}
Você Esta Usando A Unity 5 ?,Você Configurou tudo?, Assistiu O Video Inteiro Pois E Extremamente Necessario

NOME-ALEATORIO
Avançado
Avançado

Masculino PONTOS : 715
REPUTAÇÃO : 21
Idade : 12
Áreas de atuação : Programador Profissional Em ...
Iniciante Profissional Em TUDO
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCGdN6l99rIhtQL84CsmvrKQ

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por NOME-ALEATORIO em Ter Ago 09, 2016 1:37 pm

Mais o Primeiro Erro Também Esta Dando Aqui (o erro seus safadinhos)

NOME-ALEATORIO
Avançado
Avançado

Masculino PONTOS : 715
REPUTAÇÃO : 21
Idade : 12
Áreas de atuação : Programador Profissional Em ...
Iniciante Profissional Em TUDO
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCGdN6l99rIhtQL84CsmvrKQ

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Ter Ago 09, 2016 7:06 pm

NOME-ALEATORIO escreveu:Mais o Primeiro Erro Também Esta Dando Aqui (o erro seus safadinhos)
eu não o video todo deu o erro quando eu coloquei o script Atirar 
Sim o Unity 5.3.5 Espero que resolvao

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por NOME-ALEATORIO em Ter Ago 09, 2016 7:37 pm

a Municao esta com algum erro 
esse primeiro erro q deu no seu
deu no meu tb

NOME-ALEATORIO
Avançado
Avançado

Masculino PONTOS : 715
REPUTAÇÃO : 21
Idade : 12
Áreas de atuação : Programador Profissional Em ...
Iniciante Profissional Em TUDO
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCGdN6l99rIhtQL84CsmvrKQ

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qua Ago 10, 2016 9:59 pm

Porfavor me ajudem alguem sabe porque deu o erro? http://prntscr.com/c47ea3

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qua Ago 10, 2016 11:11 pm

.


A todos que estão tendo erros:




1 - ASSISTAM O VÍDEO INTEIROOOOOOOOOOOOO


2 - COLOQUEM O NOME DO SCRIPT CONFORME O VÍDEO

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qua Ago 10, 2016 11:45 pm


Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qua Ago 10, 2016 11:51 pm

Clica 2x em cima do erro e manda uma print de onde está apontando o erro

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qua Ago 10, 2016 11:53 pm


Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qua Ago 10, 2016 11:55 pm

Nuss, como apareceu esse nome ali? Copia e cola os códigos que eu postei novamente e ve se o erro some. 

O nome da classe é "Atirar". Como esse "Arma" foi aparecer ali?

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qua Ago 10, 2016 11:58 pm


Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Madness em Qua Ago 10, 2016 11:58 pm

MarcosSchultz escreveu:Nuss, como apareceu esse nome ali? Copia e cola os códigos que eu postei novamente e ve se o erro some. 

O nome da classe é "Atirar". Como esse "Arma" foi aparecer ali?
Mas no script ta assim : 
Printscreen:

Madness
Designer

Masculino PONTOS : 281
REPUTAÇÃO : 34
Idade : 19
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#
Ex-Cheater



Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qui Ago 11, 2016 12:08 am

Vocês possuem algum outro script em cena com o nome "Arma"?

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qui Ago 11, 2016 12:11 am

Kkkkk Sim eu apagei ele e funcionou

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qui Ago 11, 2016 12:13 am

Se quiser manter o script, tente pegar o novo que eu coloquei agora...

Troquei o nome da classe para evitar este tipo de problemas Very Happy

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Eduardoro39 em Qui Ago 11, 2016 12:14 am


Eduardoro39
Avançado
Avançado

Masculino PONTOS : 311
REPUTAÇÃO : 8
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qui Ago 11, 2016 12:21 am

Erro com asset? hmm, vou ver, mas geralmente deixo este tipo de problemas para quem traz o assunto ao fórum.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por osiasbezerra em Qua Ago 17, 2016 8:17 am

Eu segui a risca todos os passos do vídeo e não deu nenhum erro, esse vídeo é excelente é um resumo de pelo menos 4 horas e foi um dos que mais gostei de todos os vídeos do Unity! Das pessoas que apresentaram erros, eu sugiro que criem um novo projeto e refaçam que vale muito a pena! valeu Marcos!!!! Razz Razz  Very Happy Very Happy Basketball

osiasbezerra
Iniciante
Iniciante

PONTOS : 645
REPUTAÇÃO : 5
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qui Ago 18, 2016 1:50 am

Very Happy

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Callyde Jr em Sab Set 03, 2016 5:51 am

Muito bom parabens MarcosSchultz  aqui funcionou tudo perfeitamente e fiz com umas armas que tenho aqui mais esse sistema tem como eu adicionar uma lanterna ?

Callyde Jr
Programador

Masculino PONTOS : 612
REPUTAÇÃO : 50
Idade : 37
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Dom Set 04, 2016 10:50 pm

Claro, crie um objeto vazio e utilize este script nele:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Light))]
public class LanternaM : MonoBehaviour {

   Light luz;
   public KeyCode teclaLuz = KeyCode.L;
   void Start(){
      luz = GetComponent<Light> ();
   }

   void Update () {
      if (Input.GetKeyDown (teclaLuz)) {
         luz.enabled = !luz.enabled;
      }
   }
}

Você terá que configurara a luz como Spot.

Depois, basta tornar este objeto filho da sua arma e ajeitar a posição dele bem certo...

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Callyde Jr em Sex Set 16, 2016 12:50 pm

Agora esta funcioando coloquei o script do inimigo assim
Código:
using UnityEngine;using System.Collections;
public class Inimigo : MonoBehaviour {
 public float vida = 100; bool chamouMorte = false;

void start() {

Player = GameObject.FindWithTag ("Player");

}
 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); }}

Callyde Jr
Programador

Masculino PONTOS : 612
REPUTAÇÃO : 50
Idade : 37
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Callyde Jr em Seg Set 19, 2016 1:24 pm

Az vezes esta travando a camera com a arma nao sobe e nem desce?
Eu deleto tudo e faço tudo de novo entao funciona direito mas depois trava de novo?

Callyde Jr
Programador

Masculino PONTOS : 612
REPUTAÇÃO : 50
Idade : 37
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Ter Set 20, 2016 12:05 am

Cara, está dando algum erro ou algo do tipo? A arma não subir nem descer pode ter a ver com o jeito que você está filiando ela na camera do seu personagem, ou linkando os objetos na Array de armas...

Podem estar acontecendo muitos erros, mas provavelmente você está deixando de linkar algo lá aonde você linka as armas.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Callyde Jr em Ter Set 20, 2016 5:28 am

Blz amigo vou olha aqui obrigado

Callyde Jr
Programador

Masculino PONTOS : 612
REPUTAÇÃO : 50
Idade : 37
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por exgame2016 em Ter Set 20, 2016 11:26 pm

Como faco para colocar um tempo para mudar de uma arma para outra sem que comesse atirando ?

exgame2016
Iniciante
Iniciante

PONTOS : 153
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qui Set 22, 2016 1:26 am

exgame2016 escreveu:Como faco para colocar um tempo para mudar de uma arma para outra sem que comesse atirando ?

Você pode criar uma rotina bem simples, para bloquear de atirar por alguns segundos logo após trocar a arma... para isto, basta usar IEnumerator:


MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por exgame2016 em Qui Set 22, 2016 9:09 am

Valew mano.... Seu sistema ficou muito bom.
Parabéns pelo seu trabalho, vc é o cara kkk

exgame2016
Iniciante
Iniciante

PONTOS : 153
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por ismaelalvares em Sex Out 07, 2016 10:07 pm

Marcos boa noite, estou fazendo um jogo de tiro com zumbis para apresentar na faculdade. Estou a 3 dias tentando juntar esse tutorial com o do IA, mais não da certo. Não tenho quase nada de conhecimento em programação e no unity, você pode me ajudar? Obrigado.

ismaelalvares
Iniciante
Iniciante

PONTOS : 111
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Dom Out 09, 2016 3:44 pm

Tem como você criar um tópico específico para a sua dúvida? Postando o que já tem feito de AI, o que implementou, o que está dando erro, etc.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por ismaelalvares em Dom Out 09, 2016 7:05 pm

MarcosSchultz escreveu:Tem como você criar um tópico específico para a sua dúvida? Postando o que já tem feito de AI, o que implementou, o que está dando erro, etc.

Boa noite, consegui fazer. Agora o que estou procurando é como fazer o inimigo matar meu personagem, e ele reviver novamente em um ponto do mapa. Obrigado pela atenção.

ismaelalvares
Iniciante
Iniciante

PONTOS : 111
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por ismaelalvares em Ter Out 25, 2016 11:39 am

Alguém pode me ajudar URGENTE..... Preciso do projeto para apresentar na faculdade amanhã.

IndexOutOfRangeException: Array index is out of range.
Atirar.OnGUI () (at Assets/SCRIPT_JOGO/Atirar.cs:201)

Estou tendo esse erro agora no jogo como resolvo ?

Acredito que seja isso que meu inimigo não está morrendo.

Obrigado.

ismaelalvares
Iniciante
Iniciante

PONTOS : 111
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qua Out 26, 2016 12:17 am

ismaelalvares escreveu:Alguém pode me ajudar URGENTE..... Preciso do projeto para apresentar na faculdade amanhã.

IndexOutOfRangeException: Array index is out of range.
Atirar.OnGUI () (at Assets/SCRIPT_JOGO/Atirar.cs:201)

Estou tendo esse erro agora no jogo como resolvo ?

Acredito que seja isso que meu inimigo não está morrendo.

Obrigado.

Assistiu o vídeo COMPLETO?

Parece que você configurou as arrays de maneira errada, pois está tentando acessar mais armas do que existem.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bruxamissi em Qua Out 26, 2016 2:13 pm

Marcos ola, como que eu faria para esse script atirar atraves de um botao para android

bruxamissi
Iniciante
Iniciante

PONTOS : 103
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Qua Out 26, 2016 4:41 pm

Seria interessante você criar um tópico específico para esta dúvida bruxamissi, especificando todas as partes que você quer adaptar botões

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bruxamissi em Qui Out 27, 2016 2:29 pm

MarcosSchultz escreveu:Seria interessante você criar um tópico específico para esta dúvida bruxamissi, especificando todas as partes que você quer adaptar botões

Simm amigo, http://www.schultzgames.com/t2852-duvida-tiro-com-botao-touch-android#19889

Me ajuda la por favor estou usando seu script, Smile!

bruxamissi
Iniciante
Iniciante

PONTOS : 103
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por PrimeStudio em Qui Out 27, 2016 2:48 pm

ja tenho um script de atirar minha duvida é na animação eu fiz para quando atirar com o mouse ele fosse para a animação e que quando o mouse não fosse mais precisando ele parasse a animação só que ele fica preso na animação ainda como posso fazer? fiz a animação com bool ta assim uma parte do script. 
Código:
if(Input.GetMouseButtonDown(0) && canFire)

        {

            canFire = false;

            currentFireRate = 0;

            GameObject go = (GameObject)Instantiate (arrowPrefab, shootPoint.position,shootPoint.rotation);

            go.GetComponent<Rigidbody> ().AddForce (shootPoint.forward*speed);

            anim.SetBool ("Arrow", true);

        }



        if (Input.GetMouseButtonUp (0) && canFire) 

        {

            anim.SetBool ("Arrow", false);

        }




e para meu player estou usando as animações do player da unity ThirdPersonController e os scripts dele.

PrimeStudio
Membro
Membro

PONTOS : 369
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Seg Out 31, 2016 2:49 pm

Teria como você criar um tópico específico para esta dúvida PrimeStudio?

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por PrimeStudio em Seg Out 31, 2016 3:11 pm

na verdade eu consegui resolver esse problema mais acabei não tirando o que comentei. eu criei um outro tópico sobre outro problema que surgiu no animator. o moderador george lucas vieira falou que vai me ajudar só estou esperando a resposta dele.

PrimeStudio
Membro
Membro

PONTOS : 369
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por edu094 em Ter Nov 01, 2016 7:58 pm

Eduardoro39 escreveu:Porfavor me ajudem alguem sabe porque deu o erro? http://prntscr.com/c47ea3
Veja o nome do script ser igual ao da classe

edu094
Iniciante
Iniciante

Masculino PONTOS : 242
REPUTAÇÃO : 1
Idade : 16
Áreas de atuação : Varias areas da informatica
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bymaxbig em Seg Nov 07, 2016 1:43 pm

ola marcos, fiz tudo certinho e funcionou porem so da dano no inimigo quando estou bem pertinho e queria que fosse mais longe

bymaxbig
Membro
Membro

Masculino PONTOS : 383
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bymaxbig em Seg Nov 07, 2016 1:44 pm

bymaxbig escreveu:ola marcos, fiz tudo certinho e funcionou porem so da dano no inimigo quando estou bem pertinho e queria que fosse mais longe, como altero isso no script? Surprised

bymaxbig
Membro
Membro

Masculino PONTOS : 383
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por dstaroski em Seg Nov 07, 2016 2:11 pm

Boa tarde bymaxbig! acredito que foi um erro seu, duas postagens repetidas, mas tome cuidado com isso, regra número 12 do fórum, Flood. Verifique se a colisão do seu inimigo não está muito pequena, se o seu player de FPS, se a câmera dele não está dentro da colisão dele, pois dai o raycast conflita com a própria colisão do seu player, se estiver, teste levantando ela, no eixo Y.

Obrigado!

dstaroski
Instrutor

Masculino PONTOS : 632
REPUTAÇÃO : 156
Idade : 27
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Desenvolvimento Android

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bymaxbig em Seg Nov 07, 2016 3:10 pm

dstaroski escreveu:Boa tarde bymaxbig! acredito que foi um erro seu, duas postagens repetidas, mas tome cuidado com isso, regra número 12 do fórum, Flood. Verifique se a colisão do seu inimigo não está muito pequena, se o seu player de FPS, se a câmera dele não está dentro da colisão dele, pois dai o raycast conflita com a própria colisão do seu player, se estiver, teste levantando ela, no eixo Y.

Obrigado!
obrigado dstaroski deu certo aki era o meu player vlw abraço!! Very Happy Very Happy

bymaxbig
Membro
Membro

Masculino PONTOS : 383
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bymaxbig em Ter Nov 08, 2016 11:34 am

[list=linenums]
[*] IEnumerator Morrer(){

[*] GetComponent<MeshRenderer> ().material.color = Color.red;

[*] yield return new WaitForSeconds (2);

[*] Destroy (gameObject);

[*] }

[/list]


ola, nesse trecho do script ta tudo certo porem estou configurando um monstro e a mesh dele  e uma Skinned mesh renderer como faço para auterar isso ?

bymaxbig
Membro
Membro

Masculino PONTOS : 383
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por MarcosSchultz em Ter Nov 08, 2016 1:00 pm

Já tentou usar em vez de "GetComponent" o "GetComponentInChildren" ?

Tem como postar uma print desta mesh que você está usando?

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por bymaxbig em Ter Nov 08, 2016 4:02 pm

MarcosSchultz escreveu:Já tentou usar em vez de "GetComponent" o "GetComponentInChildren" ?

Tem como postar uma print desta mesh que você está usando?
olha ai man vou tentar essa outra forma GetComponentInChildren



[url=]link img[/url]

bymaxbig
Membro
Membro

Masculino PONTOS : 383
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)

Mensagem por Callyde Jr em Qua Nov 09, 2016 6:18 am

Bom dia amigos
Tenho umas armas aqui com animaçoes cada uma com 3 animaçoes
tem como colocar as animaçoes nas armas nesse sistema ? temtei aqui tanto so deu erro

Callyde Jr
Programador

Masculino PONTOS : 612
REPUTAÇÃO : 50
Idade : 37
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum