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:
Recrutamento de equipe
É assim que se começa um "novo mundo" na era medieval? kkjk
Tempo Minutos e Segundos Transformar em Volta mais Rapida
[TUTORIAL] Unity 5.5 - Splash Screen
R7 - GOOH (resident evil 7)
InputField/String Com formato para data XX/XX/XXXX
Estou com varias duvidas sobre o inputfield do ui canvas
(Dúvida) Setar ultima string de uma array
[Ajuda] Unity 5.5.0 não abre
Coroutines Loop
[____TÓPICO LIVRE____] FALE O QUE QUISER
Destruindo objeto em uma outra cena
modo desenvolvedor xbox one?
como usar o Lookat com o addforce do rigidibody?
Cryengine 3?
Transferência de valores.
Teste de usuário para um jogo
Ajuda com variaveis multiplas?
Animação da arma (Mirar/Recarregar)
script
Dash2D
[TUTORIAL] Barra de VIDA / HP contínua
Tornar objeto filho por script
Time.timeScale continua em 0
Animacao2D
Duvida Animation Play não faz nada
Unity 5 Bugado
Escolher que resoluções jogo vai ter
Baixar Documentaçao Unity 3D?
COMO DESATIVAR O SCRIPT "FisrtPersonController" DO PLAYER ATRAVÉS DE OUTRO SCRIPT
Ajuda Movimento2D
AJUDA COM BAKE EM LUZES
Tem como editar o inspector?
[TUTORIAL] Como Abrir e Fechar Gavetas - Unity 5
Números aleatorios
[TUTORIAL]Save Load Criptografado (Atualizado 07/12/16)
Trocar de true pra false em uma animação bool
[TUTORIAL] Alterarando o ícone do Executável do Jogo
Baixar Unity ?
Unity 5 + um pouco de conhecimento ou Skyrim?
Procuro vagas em equipes [Programador]
Help minha void oncollisionenter nao funciona e nao consio encontrar o do por que :/
Converter um Gameobject para uma byte array (byte[])
Asset de FPS - AU FPS Kit [unity 5] v1.5
[TUTORIAL] Dicas de otimização
Preciso saber o ponto medio entre dois Transform
[TUTORIAL] Banco de dados || MySQL
Unity 5.5 BETA (Mudanças)
[TUTORIAL] Serialização - JSON
[TUTORIAL] Melhorar a estabilidade dos veículos com Wheel Collider
[TUTORIAL]Como colocar videos ou intros simples na unity free
[TUTORIAL] Deformar o terreno
[TUTORIAL] Scripts Básicos para Iniciantes
Qual asset comprar?
Ideias para level design 3D
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Alien Planet - Atmospheric scattering test
Integração PHP e Unity
Ideia Inovadora
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Pra que serve o [SerializeField] e por que usar ele?
Forma uma equipe
Feixe de luz - melhor forma de fazer
erro sinistro
Duvida sobre o Peso do jogo?
Alquem tem alguma ideia de como fazer o Player tipo a cabeça olhar para o seu inimigo?
Como mudar rotacao de um objeto em relacao a posicao do outro objeto
Gostaria da opinião de vocês sobre o beta da Unity
Script
[TUTORIAL] Sistema de Escada Estilo FPS
Guitar The Legends of Brazil
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Examinar
Formação de Equipe Battle of Worlds
me ajudem neste script para subir escada
Hoje à(s) 1:38 am
Hoje à(s) 1:16 am
Ontem à(s) 11:02 pm
Ontem à(s) 10:41 pm
Ontem à(s) 10:37 pm
Ontem à(s) 7:40 pm
Ontem à(s) 7:39 pm
Ontem à(s) 6:44 pm
Ontem à(s) 6:26 pm
Ontem à(s) 5:41 pm
Ontem à(s) 4:19 pm
Ontem à(s) 11:42 am
Ontem à(s) 11:15 am
Ontem à(s) 8:45 am
Ontem à(s) 6:17 am
Qua Dez 07, 2016 11:58 pm
Qua Dez 07, 2016 11:55 pm
Qua Dez 07, 2016 10:57 pm
Qua Dez 07, 2016 10:22 pm
Qua Dez 07, 2016 10:03 pm
Qua Dez 07, 2016 8:53 pm
Qua Dez 07, 2016 8:51 pm
Qua Dez 07, 2016 8:47 pm
Qua Dez 07, 2016 8:45 pm
Qua Dez 07, 2016 8:42 pm
Qua Dez 07, 2016 8:36 pm
Qua Dez 07, 2016 8:32 pm
Qua Dez 07, 2016 8:30 pm
Qua Dez 07, 2016 8:22 pm
Qua Dez 07, 2016 7:47 pm
Qua Dez 07, 2016 5:54 pm
Qua Dez 07, 2016 5:50 pm
Qua Dez 07, 2016 4:31 pm
Qua Dez 07, 2016 4:16 pm
Qua Dez 07, 2016 3:40 pm
Qua Dez 07, 2016 3:26 pm
Qua Dez 07, 2016 3:01 pm
Qua Dez 07, 2016 2:31 pm
Qua Dez 07, 2016 10:42 am
Ter Dez 06, 2016 10:46 pm
Ter Dez 06, 2016 10:30 pm
Ter Dez 06, 2016 6:02 pm
Ter Dez 06, 2016 5:01 pm
Ter Dez 06, 2016 3:31 am
Seg Dez 05, 2016 11:52 pm
Seg Dez 05, 2016 6:52 pm
Seg Dez 05, 2016 6:48 pm
Seg Dez 05, 2016 6:32 pm
Seg Dez 05, 2016 6:17 pm
Seg Dez 05, 2016 6:15 pm
Seg Dez 05, 2016 4:08 pm
Seg Dez 05, 2016 3:10 pm
Seg Dez 05, 2016 1:36 pm
Seg Dez 05, 2016 12:35 pm
Dom Dez 04, 2016 10:52 pm
Dom Dez 04, 2016 6:37 pm
Dom Dez 04, 2016 6:33 pm
Dom Dez 04, 2016 5:46 am
Dom Dez 04, 2016 3:34 am
Sab Dez 03, 2016 11:36 pm
Sab Dez 03, 2016 11:31 pm
Sab Dez 03, 2016 1:32 pm
Sab Dez 03, 2016 10:53 am
Sab Dez 03, 2016 1:25 am
Sab Dez 03, 2016 1:11 am
Sab Dez 03, 2016 1:08 am
Sex Dez 02, 2016 11:20 pm
Sex Dez 02, 2016 11:15 pm
Sex Dez 02, 2016 11:10 pm
Sex Dez 02, 2016 11:08 pm
Sex Dez 02, 2016 10:58 pm
Sex Dez 02, 2016 10:52 pm
Sex Dez 02, 2016 10:50 pm
Sex Dez 02, 2016 10:04 pm
Sex Dez 02, 2016 9:12 pm
Locodapraça
AndyShow
AndyShow
MarcosSchultz
foxtenn
leandroinforware
leandroinforware
hetrodo_gamer
hetrodo_gamer
hetrodo_gamer
Manawydan
kleytonpb
AndyShow
Dom3000
Callyde Jr
Matrirxp
zBanidor
MarcosSchultz
zBanidor
artplayer
MarcosSchultz
MarcosSchultz
DoctorGame15
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
hetrodo_gamer
Marlonwanger
diegopds
Dom3000
joabr
natanael.olimpio
hetrodo_gamer
hetrodo_gamer
Callyde Jr
dstaroski
Dom3000
Creat Games
Dom3000
hetrodo_gamer
dimmuo
Dom3000
Dom3000
artplayer
weslleyFx
RenanMSV
weslleyFx
Deiverson
John Rambo
Deiverson
Madness
Madness
weslleyFx
weslleyFx
artplayer
Madness
weslleyFx
weslleyFx
mafipt
dimmuo
Dom3000
Dom3000
Dom3000
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Dom3000
edumoran

[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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 673
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 : 673
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 673
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 227
REPUTAÇÃO : 29
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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 7168
REPUTAÇÃO : 888
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 : 269
REPUTAÇÃO : 8
Idade : 16
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 : 7168
REPUTAÇÃO : 888
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 : 603
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 : 7168
REPUTAÇÃO : 888
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 : 520
REPUTAÇÃO : 38
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 : 7168
REPUTAÇÃO : 888
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 : 520
REPUTAÇÃO : 38
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 : 520
REPUTAÇÃO : 38
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 : 7168
REPUTAÇÃO : 888
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 : 520
REPUTAÇÃO : 38
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 : 111
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 : 7168
REPUTAÇÃO : 888
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 : 111
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 : 69
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 : 7168
REPUTAÇÃO : 888
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 : 69
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 : 69
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 : 7168
REPUTAÇÃO : 888
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 : 61
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 : 7168
REPUTAÇÃO : 888
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 : 61
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 : 327
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 : 7168
REPUTAÇÃO : 888
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 : 327
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 : 197
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
Iniciante
Iniciante

Masculino PONTOS : 324
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
Iniciante
Iniciante

Masculino PONTOS : 324
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 : 421
REPUTAÇÃO : 94
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
Iniciante
Iniciante

Masculino PONTOS : 324
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
Iniciante
Iniciante

Masculino PONTOS : 324
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 : 7168
REPUTAÇÃO : 888
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
Iniciante
Iniciante

Masculino PONTOS : 324
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 : 520
REPUTAÇÃO : 38
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