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 :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Efeito Glowing
ESTOU COM UM PROBLEMA DE ANIMAÇÃO!!!
Enemy grid movement
[RESOLVIDO] AJUDA COM SCRIPT
TANK DEFENDER II
[TUTORIAL] Sistema simples de Cutscenes
[Asset] Repositório + Assets
Sisteminha para coleta de itens
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Objeto que pula
Bool ficar verdadeira no multiplayer em script de inimigo? (Unet)
Recrutamento para desenvolvimento de um Projeto
Câmera Orbital Modificada
ESTOU COM UM PROBLEMA EM UM SCRIPT
fazer unity5 imprimir
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Pack de áudio/ efeitos sonoros gratuitos.
AJUDA COM SCRIPT DE DISPARO
Um código e um agradecimento ao todo mundo.
Dúvida de shotter 2D...
Estou com um problema no script de animação
Rodar música fora do App
Salvar Cores com Json
GENTE EU ESTOU COM UM PROBLEMA NO UNITY
Erro Ao Tentar vincular SCRIPT C# com Objeto (Script need's to derive from MonoBehaviour)
criar um app que atende a vários produtos.
onde publicar os trabalhos prontos.
tela preta do unity apos abrir no celular..
tela branca ao iniciar videoplayer
2 JOGOS EM ANDAMENTO:
[Encerrado] - Key gratuita para "Ingame Logs Viewer" para quem avalia-lo!
Como faz para o jogo saber se e windows, android,tablet , mac e ios?
[RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
como limitar o zoom mínimo e máximo no lean touch
[Resolvido] Unity - Executar Pagina Web Dentro De Um Programa
Rádio para programadores
StreamWriter... ajuda rapida no salvamento
[RESOLVIDO] Detectar distância de objetos
Software para testar AR no PC
Fazer cada Scene em uma orientação
[TUTORIAL] Compilar para Android
Asset de paint com lag
Utilizar movimento de plataforma na UI
COMO MOVER UM OBJETO OU PERSONAGEM
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
texto com rolamento pela seta
[RESOLVIDO] Rotacionar Personagem De Acordo Com a Direção Do Analógico
Dúvida Com Conta Matematica
[RESOLVIDO] Colocar uma condição para remover uma variavel do inspector?
APK trava com Admob
Conectar ao wifi
Celular dentro do game
[TUTORIAL] Como fazer um TELEPORTE
[RESOLVICO] Colisor que ao atravessar ele eu mudo minha cena no Unity2D ?
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Objeto sempre ocupando toda a camera
Transições de Animações de Sprites
[RESOLVIDO] Sprites mudando posição
Renderização no blender
[RESOLVIDO] AJUDA ERRO COM INIMIGO
Unity - Erro ao Salvar
Duvida resolucao
Mecânica de destruição de parte de um sprite
[RESOLVIDO] Reconhecimento de Joystick e Teclado
convert byte[] em texture2D
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Captura de imagem
Como fazer variáveis se ocultarem no Editor?
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
paredes
OnTriggerExit2D detectando collider desativado
[TUTORIAL] Wheel Collider - como configurar corretamente.
posição de cubos..
[RESOLVIDO] Movimentar personagem por grade com clique do mouse. (Isométrico)
[RESOLVIDO] Data e hora atual no android
Game Engine
Dúvida Sobre o lucky patcher
[TUTORIAL] Converter uma variável String em Vetores
Tem como reproduzir vídeo em android?
Preferência em Games
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[RESOLVIDO] Acessar Scripts de Objetos Que Estão Como "DontDestroyOnLoad()" ?
[TUTORIAL] Arma tipo a do call of duty
[TUTORIAL] Double Jumping para games em 2D
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
GameJam valendo 15 mil reais em bitcoin!!
Combinar prefabs?!?
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
Multiplayer será tirado da Unity?
Como dar o mesmo valor a varias variaveis ?
Procurando modelador de personagens!
Conta playstore
[TUTORIAL] Sistema de "Entrar" em locais
[TUTORIAL] Sistema de Lanterna com Pilhas
Como mudar cor do botao UI
[RESOLVIDO] Set Materials
Uma duvida sobre colliders 2d
Hoje à(s) 4:44 pm
Hoje à(s) 3:06 pm
Hoje à(s) 2:19 pm
Hoje à(s) 12:53 pm
Ontem à(s) 11:52 pm
Ontem à(s) 11:22 pm
Ontem à(s) 10:02 pm
Ontem à(s) 9:20 pm
Ontem à(s) 5:25 pm
Ontem à(s) 2:15 pm
Ontem à(s) 1:47 pm
Ontem à(s) 1:39 am
Dom Mar 24, 2019 7:22 pm
Dom Mar 24, 2019 7:02 pm
Dom Mar 24, 2019 6:17 pm
Dom Mar 24, 2019 4:08 pm
Dom Mar 24, 2019 3:17 am
Sab Mar 23, 2019 10:30 pm
Sab Mar 23, 2019 9:18 pm
Sab Mar 23, 2019 8:39 pm
Sab Mar 23, 2019 4:51 pm
Sab Mar 23, 2019 3:56 pm
Sab Mar 23, 2019 1:03 pm
Sab Mar 23, 2019 10:10 am
Sab Mar 23, 2019 9:43 am
Sab Mar 23, 2019 12:02 am
Sex Mar 22, 2019 11:51 pm
Sex Mar 22, 2019 11:36 pm
Sex Mar 22, 2019 11:16 pm
Sex Mar 22, 2019 8:18 pm
Sex Mar 22, 2019 8:07 pm
Sex Mar 22, 2019 6:58 pm
Sex Mar 22, 2019 2:49 pm
Sex Mar 22, 2019 12:09 pm
Qui Mar 21, 2019 11:13 pm
Qui Mar 21, 2019 11:02 pm
Qui Mar 21, 2019 9:22 pm
Qui Mar 21, 2019 5:01 pm
Qui Mar 21, 2019 11:52 am
Qui Mar 21, 2019 10:18 am
Qua Mar 20, 2019 9:29 pm
Qua Mar 20, 2019 9:19 pm
Qua Mar 20, 2019 8:39 pm
Qua Mar 20, 2019 8:33 pm
Ter Mar 19, 2019 10:03 pm
Ter Mar 19, 2019 1:50 pm
Ter Mar 19, 2019 7:03 am
Ter Mar 19, 2019 6:23 am
Ter Mar 19, 2019 6:02 am
Seg Mar 18, 2019 6:48 pm
Seg Mar 18, 2019 3:39 pm
Seg Mar 18, 2019 3:28 pm
Seg Mar 18, 2019 1:00 pm
Seg Mar 18, 2019 4:31 am
Dom Mar 17, 2019 3:43 pm
Sab Mar 16, 2019 5:11 pm
Sab Mar 16, 2019 4:37 pm
Sab Mar 16, 2019 3:48 pm
Sex Mar 15, 2019 6:40 pm
Sex Mar 15, 2019 3:09 pm
Sex Mar 15, 2019 9:32 am
Sex Mar 15, 2019 9:27 am
Qui Mar 14, 2019 9:55 pm
Qui Mar 14, 2019 9:50 pm
Qui Mar 14, 2019 9:45 pm
Qui Mar 14, 2019 9:44 pm
Qui Mar 14, 2019 9:42 pm
Qui Mar 14, 2019 9:38 pm
Qui Mar 14, 2019 9:00 pm
Qui Mar 14, 2019 8:54 pm
Qui Mar 14, 2019 8:33 pm
Qui Mar 14, 2019 8:29 pm
Qui Mar 14, 2019 5:06 pm
Qui Mar 14, 2019 3:39 pm
Qua Mar 13, 2019 5:30 pm
Ter Mar 12, 2019 2:54 pm
Seg Mar 11, 2019 10:21 pm
Seg Mar 11, 2019 1:25 pm
Seg Mar 11, 2019 11:51 am
Seg Mar 11, 2019 12:35 am
Dom Mar 10, 2019 9:49 pm
Dom Mar 10, 2019 8:20 pm
Dom Mar 10, 2019 5:47 pm
Dom Mar 10, 2019 5:21 pm
Dom Mar 10, 2019 2:12 pm
Sab Mar 09, 2019 7:50 pm
Sab Mar 09, 2019 12:18 pm
Sex Mar 08, 2019 6:55 pm
Sex Mar 08, 2019 2:40 pm
Qui Mar 07, 2019 12:19 pm
Qui Mar 07, 2019 12:12 pm
Qui Mar 07, 2019 11:59 am
Qui Mar 07, 2019 11:12 am
Qui Mar 07, 2019 1:29 am
Qua Mar 06, 2019 10:32 pm
Qua Mar 06, 2019 5:37 pm
Qua Mar 06, 2019 1:21 pm
Ter Mar 05, 2019 2:53 pm
Seg Mar 04, 2019 7:39 pm
NKKF
gutovic29
Unidade3d5
Diego Felix
wagnercaragua
AnderGames
dimmuo
Magnatah
Tegh
luiz12345
luiz12345
ShadowWG
MrToddyYT
Nalfam
Encracker
JOOOONHYYY
Zack2
Diego Felix
dstaroski
Weslley
gutovic29
NKKF
Duarte
Simplizãum S
CaerHunter
marciosilva
marciosilva
marciosilva
marciosilva
dstaroski
dstaroski
Chilinger
fabricadegame
eduardonog30
Magnatah
Magnatah
Encracker
numb123
Magnatah
joffersoju
fabricadegame
MarcosSchultz
MarcosSchultz
MarcosSchultz
fabricadegame
Akuma97
Magnatah
Magnatah
Magnatah
luiz12345
rejão
Zack2
Zack2
MarcosSchultz
luiz12345
henriquegames501
lesgoy
MiguelLuiz
Lteo
diegopds
Diego Felix
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Isabela
Isabela
Annko
juniorhotes
Weslley
Daniel Dória
juniorhotes
lesgoy
lucaslbatista
Flávio
Magnatah
diegopds
MayLeone
glauco
dimmuo
AnderGames
Unidade3d5
arthurunity
artplayer
diegopds
zeca urubu
Daniel Dória
AnderGames
MarcosSchultz
Alanigma
ffabim
Flávio

[TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Ir em baixo

TUTORIAL [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Ago 05, 2015 3:21 pm

Fala galera, neste tutorial estou trazendo um metodo bastante simples para fazer um laser na Unity 5...

Vídeo explicando como fazer:





Script utilizado no vídeo:

Código:
using UnityEngine;
using System.Collections;
public class Laser : MonoBehaviour {
 public Color corLaser = Color.red;
 public int DistanciaDoLaser = 100;
 public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;
 private GameObject luzColisao;
 void Start () {
 luzColisao = new GameObject ();
 luzColisao.AddComponent<Light> ();
 luzColisao.GetComponent<Light> ().intensity = 8;
 luzColisao.GetComponent<Light> ().bounceIntensity = 8;
 luzColisao.GetComponent<Light> ().range = LarguraFinal * 2;
 luzColisao.GetComponent<Light> ().color = corLaser;
 //
 LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
 lineRenderer.material = new Material (Shader.Find ("Particles/Additive"));
 lineRenderer.SetColors (corLaser, corLaser);
 lineRenderer.SetWidth (LarguraInicial, LarguraFinal);
 lineRenderer.SetVertexCount (2);
 }
 void Update () {
 Vector3 PontoFinalDoLaser = transform.position + transform.forward * DistanciaDoLaser;
 RaycastHit PontoDeColisao;
 if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, DistanciaDoLaser)) {
 GetComponent<LineRenderer> ().SetPosition (0, transform.position);
 GetComponent<LineRenderer> ().SetPosition (1, PontoDeColisao.point);
 float distancia = Vector3.Distance(transform.position,PontoDeColisao.point)-0.03f;
 luzColisao.transform.position = transform.position + transform.forward*distancia;
 } else {
 GetComponent<LineRenderer> ().SetPosition (0, transform.position);
 GetComponent<LineRenderer> ().SetPosition (1, PontoFinalDoLaser);
 luzColisao.transform.position = PontoFinalDoLaser;
 }
 }
}


Básicamente basta jogar o script no objeto que representa o Laser e já irá funcionar 100% :D


OBS: Não se esqueçam de ir em  Edit > Project Settings > Graphics e adicionar o shader "Particles/Additive" na lista always, para evitar erros na hora de compilar...


Última edição por MarcosSchultz em Ter Jun 07, 2016 9:19 pm, editado 5 vez(es)
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por liloc32 em Qui Ago 06, 2015 12:18 am

eu queria apertar f e o laser aparecer tem como?

liloc32
Iniciante
Iniciante

PONTOS : 1359
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Sex Ago 07, 2015 12:50 am

Basta criar uma variavel booleana e colocar todos os comandos do laser dentro de um if com ela...

depois fazer um comando para ativar e desativar a variavel com a letra F...

o script fica assim:

Código:
using UnityEngine;
using System.Collections;
public class Laser : MonoBehaviour {
   public Color corLaser = Color.red;
   public int DistanciaDoLaser = 100;
   public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;
   private GameObject luzColisao;
   private Vector3 posicLuz;
   private bool ligado;
   void Start () {
      luzColisao = new GameObject ();
      luzColisao.AddComponent<Light> ();
      luzColisao.GetComponent<Light> ().intensity = 8;
      luzColisao.GetComponent<Light> ().bounceIntensity = 8;
      luzColisao.GetComponent<Light> ().range = LarguraFinal * 2;
      luzColisao.GetComponent<Light> ().color = corLaser;
      posicLuz = new Vector3 (0, 0, LarguraFinal);
      //
      LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
      lineRenderer.material = new Material (Shader.Find ("Particles/Additive"));
      lineRenderer.SetColors (corLaser, corLaser);
      lineRenderer.SetWidth (LarguraInicial, LarguraFinal);
      lineRenderer.SetVertexCount (2);
   }
   void Update () {
      if (ligado == true) {
         luzColisao.SetActive(true);
         Vector3 PontoFinalDoLaser = transform.position + transform.forward * DistanciaDoLaser;
         RaycastHit PontoDeColisao;
         if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, DistanciaDoLaser)) {
            GetComponent<LineRenderer> ().SetPosition (0, transform.position);
            GetComponent<LineRenderer> ().SetPosition (1, PontoDeColisao.point);
            luzColisao.transform.position = (PontoDeColisao.point - posicLuz);
         } else {
            GetComponent<LineRenderer> ().SetPosition (0, transform.position);
            GetComponent<LineRenderer> ().SetPosition (1, PontoFinalDoLaser);
            luzColisao.transform.position = PontoFinalDoLaser;
         }
      } else {
         GetComponent<LineRenderer> ().SetPosition (0, transform.position);
         GetComponent<LineRenderer> ().SetPosition (1, transform.position);
         luzColisao.SetActive(false);
      }
      if (Input.GetKeyDown ("f")) {
         ligado = !ligado;
      }
   }
}
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Yuri Heinz em Ter Out 13, 2015 3:10 am

tem um problema, o Luz do lazer so aparece na direção de uma parede no eixo 0
acho que a solução seria agrupar os objetos criados.


[img][/img]

[img][/img]

[img][/img]
Yuri Heinz
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1417
REPUTAÇÃO : 11
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Yuri Heinz em Ter Out 13, 2015 3:16 am

o problema ta na hora que rotaciona o lazer, dai ela subtrai a posição, mas sempre no mesmo eixo

ta nessa linha aqui, tem que mudar alguma coisa
LuzColisao.transform.position = (PontoDeColisao.point - posicLuz);

linha 33 no seu código,


estou assistindo aos tutoriais de C# queria aprender mais sobre instanciar objetos, muito bom trabalho abraço
Yuri Heinz
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1417
REPUTAÇÃO : 11
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Ter Out 13, 2015 12:37 pm

Hmm, não tinha reparado nisto...

Uma solução simples é fazer uma filiação da luz dando um transform.parent na camera. Ai não tem erro.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Yuri Heinz em Qua Out 14, 2015 4:01 am

LuzColisao.transform.parent ;

Ficaria assim a linha ?, dai criaria o objeto luz como objeto filho.

Yuri Heinz
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1417
REPUTAÇÃO : 11
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Yuri Heinz em Qua Out 14, 2015 8:06 pm

não sei se vc percebeu, mas eu sou burro, não to conseguindo filiar o objeto.
manda o código do transform.parent
Yuri Heinz
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1417
REPUTAÇÃO : 11
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Out 14, 2015 11:04 pm

Acabei fazendo uma pequena correção no script original... Agora está 100% ( más não se esqueçam de ir em  Edit > Project Settings > Graphics e adicionar o shader "Particles/Additive" na lista always, para evitar erros...)


Código:
using UnityEngine;
using System.Collections;
public class Laser : MonoBehaviour {
   public Color corLaser = Color.red;
   public int DistanciaDoLaser = 100;
   public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;
   private GameObject luzColisao;
   void Start () {
      luzColisao = new GameObject ();
      luzColisao.AddComponent<Light> ();
      luzColisao.GetComponent<Light> ().intensity = 8;
      luzColisao.GetComponent<Light> ().bounceIntensity = 8;
      luzColisao.GetComponent<Light> ().range = LarguraFinal * 2;
      luzColisao.GetComponent<Light> ().color = corLaser;
      //
      LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer> ();
      lineRenderer.material = new Material (Shader.Find ("Particles/Additive"));
      lineRenderer.SetColors (corLaser, corLaser);
      lineRenderer.SetWidth (LarguraInicial, LarguraFinal);
      lineRenderer.SetVertexCount (2);
   }
   void Update () {
      Vector3 PontoFinalDoLaser = transform.position + transform.forward * DistanciaDoLaser;
      RaycastHit PontoDeColisao;
      if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, DistanciaDoLaser)) {
         GetComponent<LineRenderer> ().SetPosition (0, transform.position);
         GetComponent<LineRenderer> ().SetPosition (1, PontoDeColisao.point);
         float distancia = Vector3.Distance(transform.position,PontoDeColisao.point)-0.03f;
         luzColisao.transform.position = transform.position + transform.forward*distancia;
      } else {
         GetComponent<LineRenderer> ().SetPosition (0, transform.position);
         GetComponent<LineRenderer> ().SetPosition (1, PontoFinalDoLaser);
         luzColisao.transform.position = PontoFinalDoLaser;
      }
   }
}
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por exgame2016 em Qui Out 13, 2016 8:58 pm

Ola dinovo kkk... Como faco para add 3 quantidade de tempo nesse script...
Sendo eles...
Inicio = começa desativado e depois de 1s ( ou menos ) ativa novamente.
Reload = desativa o laser quando apertar Input.GetKey("r") e depois de um certo tempo ativa novamente.
Mira = desativa quando apertar GetButton("Fire2") e ativa novamente depois q soltar o mesmo...

Eu sei q é pedir de mais, só q vcs manja da parada, então se poder me ajudar Ficarei muito grato.

Desde já agradeço a todos e Parabéns pelo site...

exgame2016
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Dom Out 16, 2016 9:46 pm

@exgame2016 escreveu:Ola dinovo kkk... Como faco para add 3 quantidade de tempo nesse script...
Sendo eles...
Inicio = começa desativado e depois de 1s ( ou menos ) ativa novamente.
Reload = desativa o laser quando apertar Input.GetKey("r") e depois de um certo tempo ativa novamente.
Mira = desativa quando apertar GetButton("Fire2") e ativa novamente depois q soltar o mesmo...

Eu sei q é pedir de mais, só q vcs manja da parada, então se poder me ajudar Ficarei muito grato.

Desde já agradeço a todos e Parabéns pelo site...

Tem como criar um tópico específico para esta dúvida, postando o script como você está utilizando e tudo mais?

É uma implementação simples, usando IENumerator.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por osiasbezerra em Dom Ago 19, 2018 7:28 pm

Atualizando o código, pois alguns métodos ficaram obsoletos.
Obs: já começa com o laser ligado.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FAZERLASER : MonoBehaviour {

    //adiciona 
    //OBS: Não se esqueçam de ir em  Edit > Project Settings > Graphics e adicionar 
    //    o shader "Particles/Additive" na lista always, para evitar erros na hora de compilar...


    public Color corLaser = Color.red;

    public Color corLaserf = Color.blue;


    public int DistanciaDoLaser = 100;


    
    public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;

    private GameObject luzColisao;
    private Vector3 posicLuz;
    private bool ligado=true;
    void Start()
    {
        luzColisao = new GameObject();
        luzColisao.AddComponent<Light>();
        luzColisao.GetComponent<Light>().intensity = 8;
        luzColisao.GetComponent<Light>().bounceIntensity = 8;
        luzColisao.GetComponent<Light>().range = LarguraFinal * 2;
        luzColisao.GetComponent<Light>().color = corLaser;
        posicLuz = new Vector3(0, 0, LarguraFinal);
        //
        LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();



        lineRenderer.material = new Material(Shader.Find("Particles/Additive"));



        //obsoletos
        http://lineRenderer.SetColors(corLaser, corLaser);
        http://lineRenderer.SetWidth(LarguraInicial, LarguraFinal);
        http://lineRenderer.SetVertexCount(2);

        //mudar para:


        lineRenderer.startColor = corLaser;
        lineRenderer.endColor = corLaserf;
        lineRenderer.startWidth = LarguraInicial;
        lineRenderer.endWidth = LarguraFinal;
        lineRenderer.positionCount = 2;





    }
    void Update()
    {
        if (ligado)
        {
            luzColisao.SetActive(true);
            Vector3 PontoFinalDoLaser = transform.position + transform.forward * DistanciaDoLaser;
            RaycastHit PontoDeColisao;
            if (Physics.Raycast(transform.position, transform.forward, out PontoDeColisao, DistanciaDoLaser))
            {
                GetComponent<LineRenderer>().SetPosition(0, transform.position);
                GetComponent<LineRenderer>().SetPosition(1, PontoDeColisao.point);
                luzColisao.transform.position = (PontoDeColisao.point - posicLuz);
            }
            else
            {
                GetComponent<LineRenderer>().SetPosition(0, transform.position);
                GetComponent<LineRenderer>().SetPosition(1, PontoFinalDoLaser);
                luzColisao.transform.position = PontoFinalDoLaser;
            }
        }
        else
        {
            GetComponent<LineRenderer>().SetPosition(0, transform.position);
            GetComponent<LineRenderer>().SetPosition(1, transform.position);
            luzColisao.SetActive(false);
        }
        if (Input.GetKeyDown("f"))
        {
            ligado = !ligado;
        }
    }
}

osiasbezerra
Membro
Membro

PONTOS : 1479
REPUTAÇÃO : 6
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por osiasbezerra em Dom Ago 19, 2018 7:31 pm

Crédito total do MArcos Schultz Smile Smile Smile

osiasbezerra
Membro
Membro

PONTOS : 1479
REPUTAÇÃO : 6
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Seg Set 10, 2018 6:11 pm

como usa em 2d, eu fiz uns ajustes pra ver se pega em 2d, mais a cor fica sempre branca na aba game e na scene fica com a cor escolhida.

Código:
using UnityEngine;
using System.Collections;
public class Mecanicas : MonoBehaviour
{
    public Color corLaser = Color.red;
    public int DistanciaDoLaser = 100;
    public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;
    private GameObject luzColisao;
    public LineRenderer lineRenderer;
    void Start()
    {
        luzColisao = new GameObject();
        luzColisao.AddComponent<Light>();
        luzColisao.GetComponent<Light>().intensity = 8;
        luzColisao.GetComponent<Light>().bounceIntensity = 8;
        luzColisao.GetComponent<Light>().range = LarguraFinal * 2;
        luzColisao.GetComponent<Light>().color = corLaser;
        //
        lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
        lineRenderer.SetColors(corLaser, corLaser);
        lineRenderer.SetWidth(LarguraInicial, LarguraFinal);
        lineRenderer.SetVertexCount(2);
    }
    void Update()
    {
        Vector3 PontoFinalDoLaser = transform.position + transform.right * DistanciaDoLaser;
        RaycastHit2D PontoDeColisao = Physics2D.Raycast(transform.position, transform.right, DistanciaDoLaser);
        if (PontoDeColisao.collider != null)
        {
            GetComponent<LineRenderer>().SetPosition(0, transform.position);
            GetComponent<LineRenderer>().SetPosition(1, PontoDeColisao.point);
            float distancia = Vector3.Distance(transform.position, PontoDeColisao.point) - 0.03f;
            luzColisao.transform.position = transform.position + transform.right * distancia;
        }
        else
        {
            GetComponent<LineRenderer>().SetPosition(0, transform.position);
            GetComponent<LineRenderer>().SetPosition(1, PontoFinalDoLaser);
            luzColisao.transform.position = PontoFinalDoLaser;
        }
    }
}

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Seg Set 10, 2018 6:23 pm

@Eduardoro39 escreveu:como usa em 2d, eu fiz uns ajustes pra ver se pega em 2d, mais a cor fica sempre branca

Código:
using UnityEngine;
using System.Collections;
public class Mecanicas : MonoBehaviour
{
    public Color corLaser = Color.red;
    public int DistanciaDoLaser = 100;
    public float LarguraInicial = 0.02f, LarguraFinal = 0.1f;
    private GameObject luzColisao;
    public LineRenderer lineRenderer;
    void Start()
    {
        luzColisao = new GameObject();
        luzColisao.AddComponent<Light>();
        luzColisao.GetComponent<Light>().intensity = 8;
        luzColisao.GetComponent<Light>().bounceIntensity = 8;
        luzColisao.GetComponent<Light>().range = LarguraFinal * 2;
        luzColisao.GetComponent<Light>().color = corLaser;
        //
        lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
        lineRenderer.SetColors(corLaser, corLaser);
        lineRenderer.SetWidth(LarguraInicial, LarguraFinal);
        lineRenderer.SetVertexCount(2);
    }
    void Update()
    {
        Vector3 PontoFinalDoLaser = transform.position + transform.right * DistanciaDoLaser;
        RaycastHit2D PontoDeColisao = Physics2D.Raycast(transform.position, transform.right, DistanciaDoLaser);
        if (PontoDeColisao.collider != null)
        {
            GetComponent<LineRenderer>().SetPosition(0, transform.position);
            GetComponent<LineRenderer>().SetPosition(1, PontoDeColisao.point);
            float distancia = Vector3.Distance(transform.position, PontoDeColisao.point) - 0.03f;
            luzColisao.transform.position = transform.position + transform.right * distancia;
        }
        else
        {
            GetComponent<LineRenderer>().SetPosition(0, transform.position);
            GetComponent<LineRenderer>().SetPosition(1, PontoFinalDoLaser);
            luzColisao.transform.position = PontoFinalDoLaser;
        }
    }
}

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Ter Set 11, 2018 12:01 pm

Desculpe eu achei q estava editando mais reenviei o topico Edit: laser nao aparece com cor

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Ter Set 11, 2018 7:58 pm

Para 2D o sistema é o mesmo, apenas utilize a mesma largura inicial do que a largura final (sugiro 0.1). 

Quanto a cor estar branca, eu precisaria de alguma print para ver do que se trata
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Ter Set 11, 2018 11:39 pm

http://prntscr.com/ktd46t e essa tambem http://prntscr.com/ktd4h0

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Set 12, 2018 12:23 am

Tente isto, deve funcionar:

Código:
using UnityEngine;
using System.Collections;
public class Laser : MonoBehaviour {
   //
   //Feito na Unity 2017.1 por (schultzgames.com). Adaptação para 2D
   //
   public Color corLaser = Color.red;
   public int DistanciaDoLaser = 100;
   public float LarguraDoLaser = 0.1f;
   public bool usarLuz = false;

   GameObject luzColisao;
   LineRenderer lineRenderer;
   RaycastHit2D PontoDeColisao;
   Vector2 PontoFinalDoLaser;
   float distancia;

   void Start () {
      if (usarLuz) {
         luzColisao = new GameObject ("Luz Laser");
         luzColisao.AddComponent<Light> ();
         luzColisao.GetComponent<Light> ().intensity = 8;
         luzColisao.GetComponent<Light> ().bounceIntensity = 8;
         luzColisao.GetComponent<Light> ().range = LarguraDoLaser * 2;
         luzColisao.GetComponent<Light> ().color = corLaser;
      }
      //
      lineRenderer = gameObject.AddComponent<LineRenderer> ();
      lineRenderer.material = new Material (Shader.Find ("Particles/Additive"));
      lineRenderer.startColor = corLaser;
      lineRenderer.endColor = corLaser;
      lineRenderer.startWidth = LarguraDoLaser;
      lineRenderer.endWidth = LarguraDoLaser;
      lineRenderer.material.SetColor("_TintColor", corLaser);
      lineRenderer.positionCount = 2;
      lineRenderer.sharedMaterial.color = corLaser;
   }

   void Update () {
      PontoFinalDoLaser = transform.position + transform.right * DistanciaDoLaser;
      PontoDeColisao = Physics2D.Raycast (transform.position, transform.right, DistanciaDoLaser);
      if (PontoDeColisao.collider != null) {
         lineRenderer.SetPosition (0, transform.position);
         lineRenderer.SetPosition (1, PontoDeColisao.point);
         if (usarLuz) {
            distancia = Vector2.Distance (transform.position, PontoDeColisao.point) - 0.03f;
            luzColisao.transform.position = transform.position + transform.right * distancia;
         }
      } else {
         lineRenderer.SetPosition (0, transform.position);
         lineRenderer.SetPosition (1, PontoFinalDoLaser);
         if (usarLuz) {
            luzColisao.transform.position = PontoFinalDoLaser;
         }
      }
   }
}
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 12:34 am

o laser só ficou com a cor na aba scene print: http://prntscr.com/ktdgmv

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Set 12, 2018 1:12 am

Estranho, a instância do seu Shader "Particles/Additive" não está recebendo a cor. Talvez seja por causa da versão da Unity.

Vou tentar ver depois se trocar o _TintColor por apenas _Color resolve
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Set 12, 2018 2:40 am

Vou precisar do projeto dessa sua cena ai...

Aqui eu criei um projeto na 2018.2 e funciona tudo normal
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 12:30 pm

mandei o download do projeto no privado

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Set 12, 2018 7:40 pm

Ok, o Shader não funciona muito bem em 2D. Tente isto:

Código:
using UnityEngine;
using System.Collections;
public class Laser : MonoBehaviour
{
    //
    //Feito na Unity 2017.1 por (schultzgames.com). Adaptação para 2D
    //
    public Color corLaser = Color.red;
    public int DistanciaDoLaser = 100;
    public float LarguraDoLaser = 0.1f;
    public bool usarLuz = false;

    GameObject luzColisao;
    LineRenderer lineRenderer;
    RaycastHit2D PontoDeColisao;
    Vector2 PontoFinalDoLaser;
    float distancia;

    void Start()
    {
        if (usarLuz)
        {
            luzColisao = new GameObject("Luz Laser");
            luzColisao.AddComponent<Light>();
            luzColisao.GetComponent<Light>().intensity = 8;
            luzColisao.GetComponent<Light>().bounceIntensity = 8;
            luzColisao.GetComponent<Light>().range = LarguraDoLaser * 2;
            luzColisao.GetComponent<Light>().color = corLaser;
        }
        //
        lineRenderer = gameObject.AddComponent<LineRenderer>();
        lineRenderer.material = new Material(Shader.Find("Unlit/Color"));
        lineRenderer.startColor = corLaser;
        lineRenderer.endColor = corLaser;
        lineRenderer.startWidth = LarguraDoLaser;
        lineRenderer.endWidth = LarguraDoLaser;
        lineRenderer.material.SetColor("_Color", corLaser);
        lineRenderer.positionCount = 2;
        lineRenderer.sharedMaterial.color = corLaser;
    }

    void Update()
    {
        PontoFinalDoLaser = transform.position + transform.right * DistanciaDoLaser;
        PontoDeColisao = Physics2D.Raycast(transform.position, transform.right, DistanciaDoLaser);
        if (PontoDeColisao.collider != null)
        {
            lineRenderer.SetPosition(0, transform.position);
            lineRenderer.SetPosition(1, PontoDeColisao.point);
            if (usarLuz)
            {
                distancia = Vector2.Distance(transform.position, PontoDeColisao.point) - 0.03f;
                luzColisao.transform.position = transform.position + transform.right * distancia;
            }
        }
        else
        {
            lineRenderer.SetPosition(0, transform.position);
            lineRenderer.SetPosition(1, PontoFinalDoLaser);
            if (usarLuz)
            {
                luzColisao.transform.position = PontoFinalDoLaser;
            }
        }
    }
}

OBS: Não se esqueçam de ir em  Edit > Project Settings > Graphics e adicionar o shader "Unlit/Color" na lista always, para evitar erros na hora de compilar...
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 10:43 pm

A linha não aparece agora na aba game , mais na aba scene ta com cor , sera que é porque eu atualizei pra Unity 2018.2.7?

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por MarcosSchultz em Qua Set 12, 2018 11:06 pm

@Eduardoro39 escreveu:A linha não aparece agora na aba game , mais na aba scene ta com cor , sera que é porque eu atualizei pra Unity 2018.2.7?

Acredito que não.

Você não esta de repente com problemas no eixo Z ,onde a linha está ficando atrás dos sprites?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61542
REPUTAÇÃO : 2176
Idade : 22
Á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] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 11:14 pm

Não eu ate desativei os sprite pra ver a linha mas ainda nao vejo nada

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 11:25 pm

Consegui resolver eu mudei a camera para perspective e depois voltei em ortografic ai dei play e apareceu

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5

Mensagem por Eduardoro39 em Qua Set 12, 2018 11:40 pm

A não foi o que você falou,foi porque eu diminui o Z ai apareceu do outro lado

Eduardoro39
Avançado
Avançado

Masculino PONTOS : 1190
REPUTAÇÃO : 11
Idade : 19
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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