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:
facebook login
Objeto ter a mesma rotação que outro em apenas um eixo
[RESOLVIDO] Pegar o meu ping/latencia (Unet)
Animação com mão fechada
Sistema De Marchas para Veiculos
Quando o inimigo ataca todos os inimigos ativam a animação
Rotacionar player no eixo Y da camera
Alguém pode me dizer como usar as texturas,Normal map,Occlusion...
Começar em Game Design / Design
erro com carregamento de dados
Material rosa no HDRender Pipeline como resolvo isso
Instanciate objeto lado a lado
[Duvida] movimentação de nave
[RESOLVIDO] Usando o SetActive para reativar um GameObject, ajuda!
Flamehead MMORPG Indie
erro de java
[TUTORIAL] Desenvolvendo um jogo de quebra-cabeças
[TUTORIAL] Salvar dados com playerprefs facilmente.
[RESOLVIDO] Grafico quadriculado?
duvida com asset store
[TUTORIAL] Assinando um Apk e dicas de instalação e configurações
Como fazer um sistema para conectar objetos?
[RESOLVIDO] Unity sem som
Erro ao tentar compilar para Android
Como iniciar uma animação atraves de um clique em um objeto?
Error ao Gerar a KeyStore do Apk Android
Participe da Game Jam - Jaaj do canal Amdré Young!
[JOGO MOBILE] Defeat the Illuminatis
Alguém sabe como posso aplicar a movimentação agachado?!
Script de Spawn Aleatório
Sugestão para o Fórum - "Área Avançada"
(NavMesh) Objeto "Deslizando"
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Alguém conhece algum bom tutorial para aprender Algoritmo genético em C# ?
Mudar cor de area
tela branca ao iniciar videoplayer
COMO FAÇO O SISTEMA DE CHUVA ESTILO ETS2 COM GOTAS NO PARA BRISA?
COMO FAZER SISTEMA DE BHOP ESTILO CS ? (BUNNY HOP)
A Arma mudar de posição de acordo coma movimentação
[PEDIDO] Rig Simples para esse modelo.
[TUTORIAL] Acionar a vibração do dispositivo
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Animação no movimento do mouse
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[RESOLVIDO] Colisor
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
[RESOLVIDO] Como faço um limitador de tiros por distância?
[RESOLVIDO] Mudar a proporção
[RESOLVIDO] Vuforia bug
Objetos (itens) pegos na cena anterior não são destruídos quando volta para ela
Codigo em Python para colocar Imagens em POT (Power Of Two) e .exe
[RESOLVIDO] Error depois de copilar para Android?
[JOGO ANDROID] PLANET DEFENSE
[TUTORIAL] Acessar nomes de arquivos diretamente da pasta
Sistema de IAP Paypal ou parecido
[RESOLVIDO] JOGO SAINDO (ANDROID)
{Equipe} Programador que tenha interesse de participar de uma JAM.
Como fazer Sistema Dia e Noite Segui o sistema de Hora
fazer script pegar arquivo de som, porem o som sera colocado apos a build...
[RESOLVIDO] Mover Plataforma
Formação de Equipe ( Favela Killer)
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
[Devlog] Lost in the world (1.2_beta)
AJUDA COM SCRIPT DE SISTEMA QTE
Tilesets de Floresta em Pixel Art
[RESOLVIDO] Sistema de login
(UNITY 3D) Mesh Splitter - Como separar uma Mesh em multiplos Game Objects?
Como fazer um sistema de compra de itens?
[JOGO] Tetris em Unity - Para tutorial
Modulo Xbox One
[RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
[RESOLVIDO] Como apagar parte da grama do terreno para fazer uma calçada?
[RESOLVIDO] Erro ao Copilar: Bug no personagem.
[Opinião] 2d ou 3d?
Como é feito esse efeito?
Teaser 2 do meu jogo
Shader com efeito de dissolução
[TUTORIAL] Geração de Mesh procedural (estilo Minecraft)
[RESOLVIDO] Erro no Baú
Problema ao mudar sprite entre objetos por conta do uso de joystick
Unity 3d TELA PRETA
[Duvida] Como chamar uma void criada por mim, apenas em determinados momentos.
Corcle (Mobile) - Um jogo simples com um nome estranho.
Bomb Battle Jogo Online Em Desenvolvimento
Ajuda com Visual Studio e MonoDevelop
[RESOLVIDO] Bug o material fica preto
[RESOLVIDO] Error para copilar para Android?
Como colocar um botao do teclado na UI exemplo botao "e"?
[RESOLVIDO] Destruir Mesh na Unity
Destruição de Polígonos
[RESOLVIDO] ATIVAR E DESATIVAR OBJETO PRESSIONANDO BOTÃO
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
[JOGO] Jogo de memória do Pokémon (com som)
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Dúvida sobre assets da Unity Assets Store
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
[RESOLVIDO] Sistema de disparos de doze
[Em Desenvolvimento] Battles of Worlds
Ontem à(s) 10:22 pm
Ontem à(s) 6:53 pm
Ontem à(s) 4:48 pm
Ontem à(s) 4:30 pm
Ontem à(s) 1:45 pm
Ontem à(s) 1:20 pm
Ontem à(s) 12:49 pm
Ontem à(s) 8:26 am
Ontem à(s) 3:45 am
Ontem à(s) 1:59 am
Qui Jan 17, 2019 9:23 pm
Qui Jan 17, 2019 7:10 pm
Qui Jan 17, 2019 2:24 am
Qui Jan 17, 2019 1:48 am
Qui Jan 17, 2019 1:28 am
Qua Jan 16, 2019 6:28 pm
Qua Jan 16, 2019 11:35 am
Qua Jan 16, 2019 9:30 am
Ter Jan 15, 2019 10:57 pm
Ter Jan 15, 2019 9:51 pm
Ter Jan 15, 2019 8:20 pm
Ter Jan 15, 2019 5:22 pm
Ter Jan 15, 2019 4:09 pm
Ter Jan 15, 2019 3:50 pm
Ter Jan 15, 2019 2:06 pm
Ter Jan 15, 2019 1:50 pm
Ter Jan 15, 2019 12:26 pm
Ter Jan 15, 2019 10:49 am
Ter Jan 15, 2019 3:27 am
Ter Jan 15, 2019 3:23 am
Ter Jan 15, 2019 3:19 am
Ter Jan 15, 2019 3:15 am
Ter Jan 15, 2019 3:13 am
Ter Jan 15, 2019 3:06 am
Ter Jan 15, 2019 3:04 am
Ter Jan 15, 2019 2:58 am
Ter Jan 15, 2019 2:47 am
Ter Jan 15, 2019 2:39 am
Seg Jan 14, 2019 6:58 pm
Seg Jan 14, 2019 5:54 pm
Seg Jan 14, 2019 2:20 pm
Seg Jan 14, 2019 7:28 am
Dom Jan 13, 2019 6:19 pm
Dom Jan 13, 2019 9:52 am
Sab Jan 12, 2019 8:10 pm
Sab Jan 12, 2019 4:08 pm
Sab Jan 12, 2019 2:41 pm
Sex Jan 11, 2019 10:28 pm
Sex Jan 11, 2019 8:41 pm
Sex Jan 11, 2019 8:31 pm
Sex Jan 11, 2019 12:11 pm
Sex Jan 11, 2019 7:33 am
Sex Jan 11, 2019 2:18 am
Qui Jan 10, 2019 11:36 pm
Qui Jan 10, 2019 1:04 pm
Qui Jan 10, 2019 12:58 pm
Qui Jan 10, 2019 12:50 pm
Qui Jan 10, 2019 9:23 am
Qua Jan 09, 2019 9:33 pm
Qua Jan 09, 2019 2:47 am
Qua Jan 09, 2019 12:17 am
Qua Jan 09, 2019 12:02 am
Ter Jan 08, 2019 10:24 pm
Ter Jan 08, 2019 5:00 pm
Ter Jan 08, 2019 3:51 pm
Seg Jan 07, 2019 10:42 pm
Seg Jan 07, 2019 10:26 am
Seg Jan 07, 2019 12:43 am
Dom Jan 06, 2019 5:16 pm
Dom Jan 06, 2019 2:22 pm
Sex Jan 04, 2019 3:15 pm
Sex Jan 04, 2019 2:29 pm
Sex Jan 04, 2019 2:25 pm
Sex Jan 04, 2019 12:38 pm
Qui Jan 03, 2019 12:35 am
Qua Jan 02, 2019 9:46 pm
Qua Jan 02, 2019 8:56 pm
Qua Jan 02, 2019 6:48 pm
Qua Jan 02, 2019 5:32 pm
Qua Jan 02, 2019 2:34 pm
Qua Jan 02, 2019 11:17 am
Seg Dez 31, 2018 6:23 pm
Seg Dez 31, 2018 5:53 pm
Seg Dez 31, 2018 11:29 am
Seg Dez 31, 2018 12:26 am
Dom Dez 30, 2018 9:45 pm
Dom Dez 30, 2018 8:53 pm
Dom Dez 30, 2018 3:15 pm
Dom Dez 30, 2018 12:49 pm
Dom Dez 30, 2018 12:46 pm
Sab Dez 29, 2018 4:06 pm
Sex Dez 28, 2018 9:34 pm
Sex Dez 28, 2018 7:16 pm
Sex Dez 28, 2018 3:31 pm
Sex Dez 28, 2018 3:29 pm
Sex Dez 28, 2018 3:20 pm
Sex Dez 28, 2018 3:17 pm
Sex Dez 28, 2018 2:11 pm
Sex Dez 28, 2018 6:20 am
Zack2
CaioItz
luiz12345
Zack2
Gabryellx007
MayLeone
CaioItz
glauco
Joshuaaaa
MarcosSchultz
MarcosSchultz
MayLeone
MarcosSchultz
bielTuvel
Skurb
zZAndersonZz
MayLeone
dstaroski
heitor
MarcosSchultz
rafaelllsd
henriquegames501
Daniel Dória
dstaroski
dstaroski
Duarte
NKKF
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
dstaroski
BRGC
Callyde Jr
Callyde Jr
TecnoGames
dstaroski
MayLeone
NKKF
bielTuvel
Priste_Hell
Callyde Jr
Wanderli
Andeton
Callyde Jr
MateusPignatti
MayLeone
Callyde Jr
NoobZ
AladoAlan
francisco barroso
luiz12345
speedluk
zeca urubu
Rafal
NKKF
Diego Felix
ismarspn
Zack2
Dom3000
henriquegames501
conceptfac
guimaraf
lhm
EricKBMS
5pntozero
Daniel Dória
Madness
Patrick
AnderGames
kalango studios games
EricKBMS
francisco barroso
dstaroski
MayLeone
PauloFR
glauco
francisco barroso
Dom3000
Callyde Jr
Callyde Jr
vitorhugo
vitorhugo
Diego Felix
JohnRambo
NKKF
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
diegopds
Dom3000

[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)
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1294
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;
      }
   }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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]
avatar
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1351
REPUTAÇÃO : 10
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
avatar
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1351
REPUTAÇÃO : 10
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.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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.

avatar
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1351
REPUTAÇÃO : 10
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
avatar
Yuri Heinz
Iniciante
Iniciante

Masculino PONTOS : 1351
REPUTAÇÃO : 10
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;
      }
   }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 883
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.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1414
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 : 1414
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 : 1125
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 : 1125
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 : 1125
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1125
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;
         }
      }
   }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1125
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1125
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...
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1125
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?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61338
REPUTAÇÃO : 2137
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 : 1125
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 : 1125
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 : 1125
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