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:
Não consigo o Android SDK!!
[RESOLVIDO] Como faço para depois de determinado tempo acontecer algo?
Calcular hora ?
CRASH AO ENTRAR NA CENA UNITY
estou procurando um bom tutorial de IA Basica
Erro ao colocar script no botão
Novo jogo em desenvolvimento, 13º andar
Text Dinâmico no botão
Sistema Pdv, Mercado, Padaria, Conveniência, Lojas Em Geral - C# VISUAL STUDIO
[TUTORIAL] - Script de lanterna pra seu jogo de terror e outros...
[RESOLVIDO] Unity - Reproduzir Videos Do Blender No Unity
Ordem de fases
[RESOLVIDO] Tenho algum erro de simbolo no script do carro o que poderia ser?
Como mudar o CONTROLLER do ANIMATOR
[TUTORIAL] Banco de dados || MySQL
[RESOLVIDO] Dúvida. Detectar colisões nas instâncias
erro na minha IA
[TUTORIAL] While, como funciona?
Como criar um poligono dinamicamente?
Discord para desenvolvimento de jogos
Mostrar a contagem em 10K e 100M
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
Cores nos materiais sem criar material
Poderia modelar um personagem cartoon para meu projeto
Como coloco modo de criação de personagem?
[Ajuda] Assets
RayCasting + Disparo Um Bom Tipo De Video Aula.
Ajuda de Blender para Unity
Procuro Equipe Para Criação de Jogo [PAGO]
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[RESOLVIDO] erro WaterBaseEditor.cs não encontra o caminho do WaterBase
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[TUTORIAL] Acessar nomes de arquivos diretamente da pasta
Objeto dentro do player nao ta rotacioando
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Array de prefabs
screenshot
instancia item aleatorio em varias posicoes
[TUTORIAL] Mira que fica se movendo (ocilando,tremendo,etc)
Getcomponent de C# para java
Curso barato de C#
Unity - Modelo 3D em Menu 2D
Unity + MySQL
[RESOLVIDO] Camera Estilo Showroom
A um mês com unity bugado sem resposta
[GameJam] Competição organizada pela BitCodeStudios
Drop Shadows
Pegar strings de "duas em duas"
criar um piano no unity
Movimentação
Instanciar objeto onde cricar com mouse ou touch
Dúvida Sistema de Energia para jogo android
[RESOLVIDO] Inimigo patrulhando constantemente estilo mario
BUG UNITY 3D ROSA A SCENE E GAME
Dúvida. Colliders no Unity3D
Pq a grama do Unity é tao pesada?
Alguem cria uma conta na playstore pra mim? :(
Capture Panorama?
Artistas 3D e Programadores Unity3D (Remunerado)
Input Get Key
SCHULTZ Jogo de terror
(Erro) IndexOutOfRangeException:Array index is out of range
EU QUERIA COLOCAR ANUNCIOS NO MEU JOGO NA MUDANÇA DE CENAS MAS NÃO ACHO UM JEITO
Unity - Duvida Sobre a JDK Que Vocês Usam
[RESOLVIDO] Adicionar Botoes em controle mobile
admob recompensa
Unity - Duvida Sobre Atualizar
Unity Admob GDPR (como implementar ?)
Timer para mudar de câmera
The Pyramid Demo Atualizado
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Mudando cor do texto...
como dminuir o lag no meu unity 5
[JOGO MOBILE] Defeat the Illuminatis
Como chamar animação sem passar por outro parâmetros?
[TUTORIAL] Unity 5 - Botão contínuo usando UI (Manter pressionado)
unity - erro ao buildar
Meus ints não aparecem no Inspector, serializable não funciona
Modelagem
[RESOLVIDO] Tutoriais
[RESOLVIDO] Não está instanciando
[RESOLVIDO] muta som em todas as cenas
Palavra chave New no C#
[PROJETO CONCLUÍDO] Defeat the Illuminatis
[RESOLVIDO] Dificuldade no adição do Android SDK a Unity e erro no Android Studio
world machine + unity
[Em Desenvolvimento] Battles of Worlds
Unity + Photon 2
[RESOLVIDO] Como usar o touchpad da unity para orbital o personagem em terceira pessoas ?
(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.
Duvida com gráficos
[TUTORIAL] Objeto flutuar como se estivesse no espaço ou na água
[TUTORIAL] Third Person Shooter
[TUTORIAL] Como spawnar inimigos [Tutorial simples]
Raycast - Spawnar objeto na colisão do raycast
iniciar jogo com uma cena desativada e ativá-la ao colidir com bloco desativando as outras
{Possível Projeto para Unity} Buscando membros para formar uma Equipe...
[RESOLVIDO] Sistema de Grau Realista - Jogo de Moto
[RESOLVIDO] Como acessar e mudar o volume via script
Hoje à(s) 3:57 pm
Hoje à(s) 3:24 pm
Hoje à(s) 12:54 pm
Hoje à(s) 8:13 am
Hoje à(s) 8:11 am
Ontem à(s) 6:56 pm
Ontem à(s) 2:41 pm
Ontem à(s) 8:12 am
Ontem à(s) 7:57 am
Sab Nov 10, 2018 8:54 pm
Sab Nov 10, 2018 5:11 pm
Sab Nov 10, 2018 2:52 pm
Sab Nov 10, 2018 2:13 pm
Sab Nov 10, 2018 8:45 am
Sab Nov 10, 2018 2:10 am
Sab Nov 10, 2018 12:39 am
Sab Nov 10, 2018 12:28 am
Sex Nov 09, 2018 3:56 pm
Sex Nov 09, 2018 1:34 pm
Qui Nov 08, 2018 11:49 pm
Qui Nov 08, 2018 11:28 pm
Qui Nov 08, 2018 11:25 pm
Qui Nov 08, 2018 10:01 pm
Qui Nov 08, 2018 7:47 pm
Qui Nov 08, 2018 12:36 pm
Qui Nov 08, 2018 12:31 pm
Qui Nov 08, 2018 12:28 pm
Qui Nov 08, 2018 12:53 am
Qua Nov 07, 2018 5:52 pm
Qua Nov 07, 2018 4:04 pm
Qua Nov 07, 2018 12:49 pm
Ter Nov 06, 2018 2:05 pm
Ter Nov 06, 2018 12:30 pm
Ter Nov 06, 2018 11:32 am
Ter Nov 06, 2018 1:10 am
Seg Nov 05, 2018 6:57 pm
Seg Nov 05, 2018 3:36 pm
Seg Nov 05, 2018 12:44 am
Dom Nov 04, 2018 5:32 pm
Dom Nov 04, 2018 5:31 pm
Dom Nov 04, 2018 5:30 pm
Dom Nov 04, 2018 1:05 am
Sab Nov 03, 2018 5:19 pm
Sab Nov 03, 2018 1:36 pm
Sex Nov 02, 2018 11:38 pm
Sex Nov 02, 2018 10:55 pm
Sex Nov 02, 2018 9:10 pm
Sex Nov 02, 2018 8:16 pm
Sex Nov 02, 2018 7:50 pm
Sex Nov 02, 2018 7:41 pm
Sex Nov 02, 2018 7:27 pm
Sex Nov 02, 2018 6:36 pm
Sex Nov 02, 2018 3:27 pm
Sex Nov 02, 2018 3:35 am
Sex Nov 02, 2018 3:24 am
Qui Nov 01, 2018 3:56 pm
Qui Nov 01, 2018 3:52 pm
Qui Nov 01, 2018 1:18 pm
Qui Nov 01, 2018 7:57 am
Qui Nov 01, 2018 2:26 am
Qui Nov 01, 2018 2:05 am
Qua Out 31, 2018 9:20 pm
Qua Out 31, 2018 6:09 pm
Qua Out 31, 2018 7:17 am
Ter Out 30, 2018 11:34 pm
Ter Out 30, 2018 9:34 pm
Ter Out 30, 2018 5:29 pm
Ter Out 30, 2018 8:12 am
Ter Out 30, 2018 8:05 am
Seg Out 29, 2018 2:21 pm
Seg Out 29, 2018 12:03 am
Dom Out 28, 2018 5:33 pm
Dom Out 28, 2018 11:58 am
Dom Out 28, 2018 11:57 am
Sab Out 27, 2018 11:29 am
Sab Out 27, 2018 11:22 am
Sex Out 26, 2018 8:31 pm
Sex Out 26, 2018 6:21 pm
Sex Out 26, 2018 5:56 pm
Sex Out 26, 2018 5:13 pm
Sex Out 26, 2018 5:03 pm
Sex Out 26, 2018 2:45 pm
Sex Out 26, 2018 1:51 pm
Sex Out 26, 2018 8:36 am
Qui Out 25, 2018 10:29 pm
Qui Out 25, 2018 9:59 pm
Qui Out 25, 2018 6:27 pm
Qui Out 25, 2018 1:14 pm
Qua Out 24, 2018 10:53 pm
Qua Out 24, 2018 8:10 pm
Qua Out 24, 2018 6:10 pm
Qua Out 24, 2018 6:10 pm
Qua Out 24, 2018 5:43 pm
Qua Out 24, 2018 10:34 am
Qua Out 24, 2018 10:29 am
Qua Out 24, 2018 8:46 am
Ter Out 23, 2018 11:25 pm
Ter Out 23, 2018 11:20 pm
Ter Out 23, 2018 9:05 pm
francisco barroso
Vitor Paulino
Callyde Jr
dstaroski
dstaroski
SuperGamer
Patrick
dstaroski
dstaroski
SuperGamer
Magnatah
francisco barroso
Samuelostgamer
francisco barroso
dazentt55
GattiMene
MarceloYBP
SuperGamer
conceptfac
SuperGamer
Tegh
francisco barroso
NKKF
GameLACK
dstaroski
dstaroski
dstaroski
jack2117
Mathss
JohnRambo
Daniel Dória
JohnRambo
gurgelg752
francisco barroso
MarcosSchultz
Nalfam
dstaroski
MarcosSchultz
dstaroski
dstaroski
dstaroski
Magnatah
dazentt55
Teio
Callyde Jr
hetrodo
MarcosSchultz
NKKF
CarlosDT94
MarcosSchultz
MarcosSchultz
Magnatah
MrMattD
MarcosSchultz
MarcosSchultz
francisco barroso
francisco barroso
Callyde Jr
Dom3000
MarcosSchultz
MarcosSchultz
francisco barroso
MATHEUS1233
dstaroski
francisco barroso
theus.mors
Magnatah
dstaroski
dstaroski
dstaroski
MarcosSchultz
mafipt
dstaroski
dstaroski
Weslley
Weslley
Magnatah
MarcosSchultz
JohnRambo
dknoob537
samuelarao
theus.mors
MayLeone
dstaroski
Tegh
Encracker
Dom3000
Jmspp
CaioItz
rafaelllsd
dknoob537
Frsilva
Phph09
francisco barroso
dstaroski
dstaroski
Locodapraça
Duarte
Brgs886

[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 : 61107
REPUTAÇÃO : 2090
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 : 1225
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 : 61107
REPUTAÇÃO : 2090
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 : 1281
REPUTAÇÃO : 9
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 : 1281
REPUTAÇÃO : 9
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 : 61107
REPUTAÇÃO : 2090
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 : 1281
REPUTAÇÃO : 9
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 : 1281
REPUTAÇÃO : 9
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 : 61107
REPUTAÇÃO : 2090
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 : 814
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 : 61107
REPUTAÇÃO : 2090
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 : 1345
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 : 1345
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 61107
REPUTAÇÃO : 2090
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 61107
REPUTAÇÃO : 2090
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 61107
REPUTAÇÃO : 2090
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 : 61107
REPUTAÇÃO : 2090
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 61107
REPUTAÇÃO : 2090
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 61107
REPUTAÇÃO : 2090
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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 : 1071
REPUTAÇÃO : 11
Idade : 18
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