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:
Como "medir" a distância do caminho no NavMesh??
Jogo de Favela para Android - Estou usando o MS Vehicle System do Marcos!
Meu game para Android " As aventuras de Steff " finalizado, ou quase!
Mecânica do Inimigo (Horror Survive)
iae galera, postei meu jogo no Google play recentemente.
Modificação no Script
Problemas com animações
GUARDAR MACHADO
Erro ao usb
Criar Apk Android 64 .aab
Bibliotecas obsoletas causam alguma perda de desempenho?
O jogo acaba depois de um determinado tempo
Mecânica simples no estilo Jogo da Memória
COMO MUDAR UMA VARIAVEL APOS EX: 10 DIAS
Duvida com Script de AI inteligente
Duvida com FadeIn e FadeOut quando o tempo do jogo acaba
Como fazer o personagem não conseguir flipar enquanto estou atacando? (Unity 2D)
Duvida com Network
efeito de pingos na tela e camera com leve balanço realista (game 2D)
Como criar perfil no jogo para quem pagar na play store
Uma Ideia Movimento
INVENTÁRIO ESTILO THE FOREST
ANIMAÇÃO INFINITA NO UNITY
Problemas para salvar imagem de textura gerada na Unity no PC
Deformar mesh sem usar rigidbody e reconhecer força do impacto
Existe outras formas de multiplayer sem ser pelo Photon ou Unet?
força de impacto em npc proximo a objeto que explode
criar perfil no jogo para quem pagar na play store
Uma Ideia Movimento
Sistema De Radio
Jogo de Maior ou Menor - Duvida sobre melhorias no script
As funções dadas não são executadas no cliente, somente no servidor...
Mudar a música com base na mudança do ambiente
[RESOLVIDO] Dano no inimigo
Caixa de dialogo aparece e desaparece muito rápido ;-
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Reiniciar Scene ao tocar Objeto
Ajuda com O Script de coletar objetos e transição de cena
Unity2D- Como criar um spawn inimigo onde saia apenas 2 inimigos do spawn?
Android Game - Fleeing From Evil
[TUTORIAL] Resolver bug dos reflexos, Unity 5.5+
[AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
Conexões!
Script faz a função tudo certo na unity, já quando gero apk o script não faz a função
NavMeshAgent com caminho manual.
Preciso de Ajuda Estou a desenvolver um projeto!
Direitos Autorais da Asset Store
Os seguinte apks ou pacotes de apps estão disponíveis para dispositivos de 64 bits!!
Estou querendo mandar as informações SERVIDOR/CLIENTE com o NETWORK
Erro no unity quando eu crio um projeto
Video Player travando no apk do jogo
Update jogo
Erro ao publicar na google play
[RESOLVIDO] BUG MT CHATO. USANDO O PlayerPrefs. ME AJUDAAAAAAA PF
Aparecer Texto Aleatório
Preciso De Um Programador! Para Um Game Fps!
[DUVIDA] Problemas na rotação de uma esfera com o mouse ( AddTorque )
[RESOLVIDO] Como fazer isso em for ou foreach dentro do update
Conceito básico de jogo em Rede Local.
Uso de PNG ou JPG no Unity?
Duvida(tamanho de objetos)
App feito na Unity - Biblia Sagrada
Unity carregando objetos sozinho
Limitação do FPS
Duvida sobre a geração de cenários aleatórios(plataforma 2D)
Personagem olhar para direção de onde estiver se movimentando
Problema com Dano ao Inimigo
Dúvida sobre chaves PlayerPrefs
inventario/Matrix
Personagem voando infinitamente no Unity 2D
[RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
[RESOLVIDO] Como fazer um objeto 2D rotacionar em direção a outro objeto
Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?
duvida em c#
Shader com efeito de dissolução
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Problema com a função Resolution[]
Função Text não esta dando erro no Unity2D (Score Text)
Unity travando na hora do Play
Duvida Raycast2D
Bug Partículas
Física ser calculada mais rápida
[TUTORIAL] Fazer som tocar apenas com colisão
Sobre Criação e Execução de Cutscene
O jogo acaba depois de um determinado tempo
Como fazer uma cena resetar ao voltar para ela
Fonte com caracteres matemáticos para unity
Luz
MENU DE SELEÇÃO DE FASES
usar bluetooh
HDRP - Render Texture Trasnparente na UI
Edge Collider de maneira mais eficaz
Vídeo player não mostra nada
ALGUÉM SABER COMO RESOLVER ESSE BUG???
Tem como achar uma Letra/palavra dentro de uma string?
Qual unity usar?
Alguem tem um Script que faz objetos se mexer com delay?
Delay in guns mobile
Comunidade para desenvolvedores de jogos
Hoje à(s) 8:23 pm
Hoje à(s) 2:06 pm
Hoje à(s) 12:14 pm
Hoje à(s) 9:40 am
Hoje à(s) 9:33 am
Hoje à(s) 3:44 am
Ontem à(s) 8:09 pm
Ontem à(s) 6:27 pm
Ontem à(s) 6:25 pm
Ontem à(s) 11:56 am
Qua Out 16, 2019 10:44 pm
Qua Out 16, 2019 9:40 pm
Qua Out 16, 2019 9:34 pm
Qua Out 16, 2019 8:25 pm
Qua Out 16, 2019 3:56 pm
Qua Out 16, 2019 3:51 pm
Ter Out 15, 2019 10:35 pm
Ter Out 15, 2019 9:58 pm
Ter Out 15, 2019 9:25 pm
Ter Out 15, 2019 2:55 pm
Ter Out 15, 2019 1:31 pm
Ter Out 15, 2019 11:47 am
Ter Out 15, 2019 11:43 am
Ter Out 15, 2019 1:06 am
Ter Out 15, 2019 12:13 am
Seg Out 14, 2019 10:00 pm
Seg Out 14, 2019 8:36 pm
Seg Out 14, 2019 8:09 pm
Seg Out 14, 2019 8:04 pm
Seg Out 14, 2019 4:45 pm
Seg Out 14, 2019 1:29 pm
Seg Out 14, 2019 8:06 am
Seg Out 14, 2019 2:33 am
Dom Out 13, 2019 4:47 pm
Dom Out 13, 2019 3:52 pm
Dom Out 13, 2019 9:39 am
Dom Out 13, 2019 2:52 am
Dom Out 13, 2019 2:29 am
Sab Out 12, 2019 7:15 pm
Sab Out 12, 2019 11:21 am
Sex Out 11, 2019 8:06 pm
Sex Out 11, 2019 5:52 pm
Sex Out 11, 2019 5:23 pm
Sex Out 11, 2019 2:48 pm
Sex Out 11, 2019 12:38 pm
Sex Out 11, 2019 11:14 am
Sex Out 11, 2019 9:17 am
Sex Out 11, 2019 8:04 am
Qui Out 10, 2019 5:27 pm
Qui Out 10, 2019 2:32 pm
Qui Out 10, 2019 2:13 pm
Qui Out 10, 2019 1:42 pm
Qui Out 10, 2019 11:30 am
Qua Out 09, 2019 8:07 pm
Qua Out 09, 2019 2:26 pm
Ter Out 08, 2019 10:27 pm
Ter Out 08, 2019 8:12 pm
Ter Out 08, 2019 6:01 pm
Ter Out 08, 2019 5:05 pm
Ter Out 08, 2019 3:12 pm
Ter Out 08, 2019 3:07 pm
Ter Out 08, 2019 11:25 am
Ter Out 08, 2019 2:45 am
Ter Out 08, 2019 2:07 am
Seg Out 07, 2019 10:43 am
Seg Out 07, 2019 3:11 am
Dom Out 06, 2019 5:24 pm
Dom Out 06, 2019 4:02 pm
Dom Out 06, 2019 3:56 pm
Sab Out 05, 2019 3:08 pm
Sab Out 05, 2019 1:41 pm
Sab Out 05, 2019 1:40 pm
Sex Out 04, 2019 10:04 pm
Sex Out 04, 2019 9:12 pm
Sex Out 04, 2019 11:41 am
Qui Out 03, 2019 8:34 pm
Qui Out 03, 2019 7:57 pm
Qui Out 03, 2019 3:46 pm
Qui Out 03, 2019 10:28 am
Qui Out 03, 2019 7:19 am
Qua Out 02, 2019 11:09 pm
Qua Out 02, 2019 5:09 pm
Qua Out 02, 2019 11:19 am
Qua Out 02, 2019 8:57 am
Ter Out 01, 2019 9:03 pm
Ter Out 01, 2019 4:40 pm
Ter Out 01, 2019 4:23 pm
Seg Set 30, 2019 8:50 pm
Seg Set 30, 2019 3:17 pm
Seg Set 30, 2019 10:41 am
Seg Set 30, 2019 3:37 am
Dom Set 29, 2019 7:02 pm
Dom Set 29, 2019 2:08 pm
Dom Set 29, 2019 10:28 am
Dom Set 29, 2019 10:21 am
Dom Set 29, 2019 5:43 am
Sab Set 28, 2019 3:59 pm
Sab Set 28, 2019 2:18 pm
Sex Set 27, 2019 8:59 pm
Laylson.f
lunaticsgames
Tomás zjjxj
Lester3422
Willams
MayLeone
Samuelostgamer
Fagner
FSL02
SergioDB
RodriGO3477
Okeizito
joffersoju
nibirou
Lester3422
Lester3422
Hamassfall
igorarruda
Joab Artes Gráficas
artplayer
FabioDev
leonardolopes
leonardolopes
gabrimo
JohnRambo
SteveRogers
Extreme Craft
eduardonog30
FabioDev
williangamesbr4021
joffersoju
marino96
luizrbizzio
leonardolopes
MayLeone
Dom3000
MayLeone
Lester3422
Fagner
samoliver1813
leonardolopes
daniel123163
Dimelus
marino96
Nowsfeky
LucasGamerFx
artplayer
samoliver1813
marino96
RafaelSquid1
gtcmcsgo
benhurgdll
natanael.olimpio
daniel123163
Tegh
nibirou
guirigottti
joffersoju
Dark_The_King
Fagner
poyser
Weslley
MayLeone
Fagner
vphyre
luizrbizzio
Gabriel Ferraz
billybmx
billybmx
MayLeone
gersoneson
Hamassfall
ReDsScript
diegopds
AnderGames
GabrielGelbcke
Fagner
gersoneson
gersoneson
poyser
TecnoGames
NKKF
Gutavex
alexalex
Okeizito
poyser
Socates
Magnatah
Gutavex
JohnRambo
conceptfac
NKKF
ericssv
dstaroski
Dom3000
RafaelSquid1
MayLeone
iToddy
Insurgente

[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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1565
REPUTAÇÃO : 2
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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][TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 21ayfsz[/img]

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

[img][TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 5fn9t4[/img]
Yuri Heinz
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1624
REPUTAÇÃO : 12
Idade : 23
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1624
REPUTAÇÃO : 12
Idade : 23
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1624
REPUTAÇÃO : 12
Idade : 23
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1624
REPUTAÇÃO : 12
Idade : 23
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1154
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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
Avançado
Avançado

PONTOS : 1735
REPUTAÇÃO : 8
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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
Avançado
Avançado

PONTOS : 1735
REPUTAÇÃO : 8
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 62342
REPUTAÇÃO : 2356
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 Aad8pUi

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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 : 1396
REPUTAÇÃO : 11
Idade : 19
Respeito as regras : [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5 WvDYdlf

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