SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Organizar GUI menu, para qualquer tamanho de tela no Unity 3D
aparece e desaparece apertando um tecla.
Preciso 1 Programador
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Jogo Demo(Lost and Alone)
[AJUDA] Contorno colorido em objetos.
pq a unity compila arquivo dll?
[Formação de equipe] GamePlex Production
]C# Scripting] - Ler XML
FixedSys nova equipe formação de jogos 2d e 3d
esse e o novo jogo que estou criando "my dream" ,um projeto pequeno.
Indicação para VPS
Unity - Há alguma forma de abrir duas vezes o mesmo projeto?
Instanciar Objeto no hit.normal
IA NPC seguir e player e matar inimigos proximo
Forest Explorer
[AJUDA] CommandInvokationFailure: Failed to build apk
bug do meu jogo
Pegar a posição
Preciso de um modelo 3D
[Prototipo] : [MyLifeInSevenSeconds]
[AJUDA] Atirar no meio da animação
Duvidas em relação a armmas
problema com Movimento usando Rigidbody
Change Material
[Formacão de equipe] --Key System--
Nav mesh em tempo real e fazer as rodas girarem
Gostaria De Entrar em Uma Equipe ! :D
Problema com load (android)
Quanto tempo ?
so seguir quando ver
Atualizado (The Pyramid 1.1.1)
Mudar a Cena ao Apertar o Button
Chat android por local?
Esconder-se estilo OutLast
[RESOLVIDO] Conversão C# para JavaScript
Problema no Network
Sumindo os detalhes no UV Mapping
Animação faz objeto mudar de posição?
[ERRO DO PHOTON] Script do Photon com a unity
Desenho - Sword concept
Jogo que estou desenvolvendo "Alone"
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[TUTORIAL] Evitar Sombras ULTRA escuras após trocar de cena
[Artigo]Delegates - Entendendo e Aplicando na Unity
Raposa: Projeto Laranja - Meu jogo,O que acham?
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Enhance - Goodbye SDK fatigue! Ads and more in Minutes!
[RESOLVIDO] SUSPENSÃO
Fazer sombras usando sprites
Canvas: como trazer objeto pra frente de outro?
Meu primeiro Rpg
[RESOLVIDO] Dúvida com audio.stop e audio.play
save de objetos coletados
[RESOLVIDO] Animação alteração posição do objeto.
[RESOLVIDO] Animação De camera Procedural Tem como ?
Fazer efeito de distorção
Problema na compilaçao para android
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Qual o melhor formato de Textura?
Movimento do Sonic
Pokémon TCG-Erro de tela rosa
Melhor lugar para Publicar uma Demo
[AJUDA] Sistema de chuva
Dúvida com simulação de marcha de carros..
Precisamos de um Level Desgner ou Programador, que entenda de Otimização de Senario
Dúvida se código da unity é obsoleto
Jumper boy
Demo Terror
Enfrente Seu Pesadelo
Alguem pode me dizer qual é a função que limita o framerate do game, no unity 5 ?
como fazer trocar a imagem q está no UI canvas ?
problemas ao sincronizar healthbar entre os player (photon)
Reload Arma
Servidores dedicados - BatchMode
Como dizer que um numero é diferente do outro?
Optimização do Android
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Ativar animação
como criptografar um texto e descriptografar em c#
existe algum método para instanciar sprites ?
Como lançar um objeto para um local via touch?
Ajuda de como fazer um jogo
Ajuda com áudio de carro
Assets tanque de guerra
Como alterar rectTransform de objeto
Como acesso uma variável em outro script?
Barra de power
[DEVLOG] Projeto - Pocket Girl Blade - Atualização
Problema na instalação do SDK Android
Ranking com nome
como ajustar o UnityEngine.UI.text via script para qualquer resolução?
PAGO POR TUTORIAIS EM VIDEO ALGUÉM INTERESSADO??
[RESOLVIDO] Alguem conhece um tutorial como este?
Alterar as qualidades das sombras com um dropdown
Como ter a mesma imagem em todos os dispositivos?
[TUTORIAL] Pegar e Dropar item no chao.[2.0]
MultiPlayer Local Android!
Asset Store quantos % fica pra ela?
Ontem à(s) 11:29 pm
Ontem à(s) 9:51 pm
Ontem à(s) 8:33 pm
Ontem à(s) 7:32 pm
Ontem à(s) 6:42 pm
Ontem à(s) 6:01 pm
Ontem à(s) 5:52 pm
Ontem à(s) 5:12 pm
Ontem à(s) 4:13 pm
Ontem à(s) 3:28 pm
Ontem à(s) 2:24 pm
Ontem à(s) 1:35 pm
Ontem à(s) 12:34 pm
Ontem à(s) 12:32 pm
Ontem à(s) 12:30 pm
Ontem à(s) 11:52 am
Ontem à(s) 8:25 am
Ontem à(s) 7:38 am
Ontem à(s) 1:10 am
Sex Dez 15, 2017 10:15 pm
Sex Dez 15, 2017 9:43 pm
Sex Dez 15, 2017 9:41 pm
Sex Dez 15, 2017 9:26 pm
Sex Dez 15, 2017 9:23 pm
Sex Dez 15, 2017 9:03 pm
Sex Dez 15, 2017 8:04 pm
Sex Dez 15, 2017 7:47 pm
Sex Dez 15, 2017 6:20 pm
Sex Dez 15, 2017 5:02 pm
Sex Dez 15, 2017 3:51 pm
Sex Dez 15, 2017 2:09 pm
Sex Dez 15, 2017 1:58 pm
Sex Dez 15, 2017 1:48 pm
Sex Dez 15, 2017 2:56 am
Qui Dez 14, 2017 11:31 pm
Qui Dez 14, 2017 11:11 pm
Qui Dez 14, 2017 8:52 pm
Qui Dez 14, 2017 7:51 pm
Qui Dez 14, 2017 5:41 pm
Qui Dez 14, 2017 3:58 pm
Qui Dez 14, 2017 12:35 pm
Qui Dez 14, 2017 11:59 am
Qui Dez 14, 2017 11:24 am
Qui Dez 14, 2017 10:54 am
Qui Dez 14, 2017 2:04 am
Qui Dez 14, 2017 1:24 am
Qui Dez 14, 2017 1:04 am
Qua Dez 13, 2017 11:37 pm
Qua Dez 13, 2017 11:09 pm
Qua Dez 13, 2017 8:23 pm
Qua Dez 13, 2017 2:20 pm
Qua Dez 13, 2017 1:49 pm
Qua Dez 13, 2017 1:22 pm
Qua Dez 13, 2017 1:11 pm
Qua Dez 13, 2017 12:57 pm
Qua Dez 13, 2017 12:41 pm
Qua Dez 13, 2017 1:16 am
Qua Dez 13, 2017 12:56 am
Qua Dez 13, 2017 12:10 am
Qua Dez 13, 2017 12:08 am
Ter Dez 12, 2017 10:23 pm
Ter Dez 12, 2017 9:57 pm
Ter Dez 12, 2017 9:53 pm
Ter Dez 12, 2017 9:37 pm
Ter Dez 12, 2017 9:18 pm
Ter Dez 12, 2017 8:26 pm
Ter Dez 12, 2017 7:40 pm
Ter Dez 12, 2017 6:27 pm
Ter Dez 12, 2017 5:44 pm
Ter Dez 12, 2017 5:43 pm
Ter Dez 12, 2017 5:34 pm
Ter Dez 12, 2017 2:25 pm
Ter Dez 12, 2017 12:49 pm
Ter Dez 12, 2017 11:34 am
Ter Dez 12, 2017 4:34 am
Seg Dez 11, 2017 9:28 pm
Seg Dez 11, 2017 8:05 pm
Seg Dez 11, 2017 7:39 pm
Seg Dez 11, 2017 7:03 pm
Seg Dez 11, 2017 6:47 pm
Seg Dez 11, 2017 6:19 pm
Seg Dez 11, 2017 4:11 pm
Seg Dez 11, 2017 3:50 pm
Seg Dez 11, 2017 3:13 pm
Seg Dez 11, 2017 1:58 pm
Seg Dez 11, 2017 1:19 pm
Seg Dez 11, 2017 1:14 pm
Seg Dez 11, 2017 10:58 am
Seg Dez 11, 2017 8:59 am
Seg Dez 11, 2017 8:55 am
Seg Dez 11, 2017 12:32 am
Dom Dez 10, 2017 11:53 pm
Dom Dez 10, 2017 9:12 pm
Dom Dez 10, 2017 8:34 pm
Dom Dez 10, 2017 6:16 pm
Dom Dez 10, 2017 6:16 pm
Dom Dez 10, 2017 6:14 pm
Dom Dez 10, 2017 6:13 pm
Dom Dez 10, 2017 4:50 pm
XN4k3Dbr
XN4k3Dbr
Sshisbachza
Zecandy
Zecandy
Santiago Furtado
glauco
PatifeCraft
azool
fabriciorsz34
glauco
Água Sem Hidrogênio
Phph09
Phph09
Phph09
Zecandy
recagonlei
recagonlei
lolhard
Zecandy
Phph09
recagonlei
Zecandy
Zecandy
michelly
Phph09
glauco
ErikBreno360
XN4k3Dbr
gurgelg752
Zecandy
MarceloYBP
John Rambo
Encracker
Phph09
lesgoy
recagonlei
RW.
GabrielBs1409
PatifeCraft
recagonlei
BRGC
dstaroski
MarceloYBP
dimmuo
MarceloYBP
Água Sem Hidrogênio
recagonlei
WesleyLemosLeal
fabriciorsz34
Zecandy
MarceloYBP
Cristianolop
Phph09
XN4k3Dbr
BRGC
Flávio
Eduardoro39
Phph09
MarceloYBP
DSK
recagonlei
natanael.olimpio
PatifeCraft
Madness
Jhonatham1
Flávio
googolepton
MarceloYBP
MarceloYBP
FelipeGD
dstaroski
Valakinhas
John Rambo
hen000
recagonlei
Água Sem Hidrogênio
natanael.olimpio
Zecandy
recagonlei
John Rambo
recagonlei
recagonlei
Nyland
erifmeurer
recagonlei
recagonlei
XN4k3Dbr
dstaroski
dstaroski
Flávio
lesgoy
oilson
GabrielBs1409
recagonlei
lesgoy
glauco
recagonlei
recagonlei

[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Sab Jul 16, 2016 7:35 pm

Vídeo explicando como utilizar



Script utilizado:
Código:
using UnityEngine;
using System.Collections;
using System;

[Serializable] //www.youtube.com/marcosschultzunity e www.schultzgames.com
public class RastrVeiculo { //autoria predominante de MARCOS SCHULTZ
 [Range(0.1f,6.0f)] public float larguraDoRastro = 0.3f;
 [Range(1.0f,10.0f)] public float sensibilidade = 2.0f;
 [Range(0.1f,1.0f)]public float OpacidadePadrao = 1.0f;
 [Range(0.001f,0.1f)]public float DistanciaDoChao = 0.02f;
 public Color CorPadrao = new Color(0.15f,0.15f,0.15f,0);
 public Shader shaderDerrapagens;
 [Space(10)]
 [Range(0.0f,1.0f)]public float intensidadeNormalMap = 0.7f;
 [Range(0.0f,1.0f)]public float smoothness = 0.0f;
 [Range(0.0f,1.0f)]public float metallic = 0.0f;
 [Space(10)]
 public TerrenosDiversosRastros[] OutrosTerrenos;
}
[Serializable]
public class TerrenosDiversosRastros {
 public bool rastroContinuo = false;
 public string tagChao = "chao";
 public Color corDoRastro = new Color(0.5f,0.2f,0.0f,0);
 [Range(0.1f,1.0f)]public float OpacidadeDoRastro = 0.8f;
}
[Serializable]
public class RodasVeicl {
 public _ClasseRoda RodaFrenteDir;
 public _ClasseRoda RodaFrenteEsq;
 public _ClasseRoda RodaTrazDir;
 public _ClasseRoda RodaTrazEsq;
 public _ClasseRoda[] RodasExtraVeiculo;
}
[Serializable]
public class _ClasseRoda {
 public WheelCollider ColliderDaRoda;
 [Range(-2.0f,2.0f)] public float deslocamentoRastro = 0.0f;
 [HideInInspector] public Mesh rendSKDmarks;
 [HideInInspector] public bool gerandoRastro;
}
public class MarcasDeDerrapagem : MonoBehaviour {

 public RastrVeiculo RastrosDoVeiculo;
 public RodasVeicl RodasDoVeiculo;
 private float KMh;
 private bool ativarRastros;
 private Rigidbody corpoRigido;
 private Vector3[] last = new Vector3[54];

 void Start(){
 corpoRigido = GetComponent<Rigidbody> ();
 if (RastrosDoVeiculo.shaderDerrapagens != null) {
 SetarValoresRastros ();
 ativarRastros = true;
 } else {
 ativarRastros = false;
 }
 }

 void Update(){
 KMh = corpoRigido.velocity.magnitude * 3.6f;
 }

 void LateUpdate(){
 if (ativarRastros == true) {
 ChecarChaoParaRastros ();
 }
 }

 void ChecarChaoParaRastros(){
 if (RodasDoVeiculo.RodaFrenteDir.ColliderDaRoda != null) {
 if (RodasDoVeiculo.RodaFrenteDir.ColliderDaRoda.isGrounded) {
 RodasDoVeiculo.RodaFrenteDir.gerandoRastro = GerarRastroDasRodas (RodasDoVeiculo.RodaFrenteDir.ColliderDaRoda, RodasDoVeiculo.RodaFrenteDir.rendSKDmarks, RodasDoVeiculo.RodaFrenteDir.gerandoRastro, RodasDoVeiculo.RodaFrenteDir.deslocamentoRastro,0);
 } else {
 RodasDoVeiculo.RodaFrenteDir.gerandoRastro = false;
 }
 }
 //
 if (RodasDoVeiculo.RodaFrenteEsq.ColliderDaRoda != null) {
 if (RodasDoVeiculo.RodaFrenteEsq.ColliderDaRoda.isGrounded) {
 RodasDoVeiculo.RodaFrenteEsq.gerandoRastro = GerarRastroDasRodas (RodasDoVeiculo.RodaFrenteEsq.ColliderDaRoda, RodasDoVeiculo.RodaFrenteEsq.rendSKDmarks, RodasDoVeiculo.RodaFrenteEsq.gerandoRastro, RodasDoVeiculo.RodaFrenteEsq.deslocamentoRastro,1);
 } else {
 RodasDoVeiculo.RodaFrenteEsq.gerandoRastro = false;
 }
 }
 //
 if (RodasDoVeiculo.RodaTrazDir.ColliderDaRoda != null) {
 if (RodasDoVeiculo.RodaTrazDir.ColliderDaRoda.isGrounded) {
 RodasDoVeiculo.RodaTrazDir.gerandoRastro = GerarRastroDasRodas (RodasDoVeiculo.RodaTrazDir.ColliderDaRoda, RodasDoVeiculo.RodaTrazDir.rendSKDmarks, RodasDoVeiculo.RodaTrazDir.gerandoRastro, RodasDoVeiculo.RodaTrazDir.deslocamentoRastro,2);
 } else {
 RodasDoVeiculo.RodaTrazDir.gerandoRastro = false;
 }
 }
 //
 if (RodasDoVeiculo.RodaTrazEsq.ColliderDaRoda != null) {
 if (RodasDoVeiculo.RodaTrazEsq.ColliderDaRoda.isGrounded) {
 RodasDoVeiculo.RodaTrazEsq.gerandoRastro = GerarRastroDasRodas (RodasDoVeiculo.RodaTrazEsq.ColliderDaRoda, RodasDoVeiculo.RodaTrazEsq.rendSKDmarks, RodasDoVeiculo.RodaTrazEsq.gerandoRastro, RodasDoVeiculo.RodaTrazEsq.deslocamentoRastro,3);
 } else {
 RodasDoVeiculo.RodaTrazEsq.gerandoRastro = false;
 }
 }
 //
 for (int x = 0; x < RodasDoVeiculo.RodasExtraVeiculo.Length; x++) {
 if (RodasDoVeiculo.RodasExtraVeiculo [x].ColliderDaRoda != null) {
 if (RodasDoVeiculo.RodasExtraVeiculo [x].ColliderDaRoda.isGrounded) {
 RodasDoVeiculo.RodasExtraVeiculo[x].gerandoRastro = GerarRastroDasRodas (RodasDoVeiculo.RodasExtraVeiculo [x].ColliderDaRoda, RodasDoVeiculo.RodasExtraVeiculo[x].rendSKDmarks , RodasDoVeiculo.RodasExtraVeiculo[x].gerandoRastro, RodasDoVeiculo.RodasExtraVeiculo [x].deslocamentoRastro,(x+4));
 } else {
 RodasDoVeiculo.RodasExtraVeiculo[x].gerandoRastro = false;
 }
 }
 }
 }
 private bool GerarRastroDasRodas(WheelCollider colisor, Mesh meshDaRoda, bool variavelBooleana, float deslocamentoLateral, int indiceLastMark) {
 WheelHit hit;
 colisor.GetGroundHit (out hit);
 var vertices = meshDaRoda.vertices;
 var normals = meshDaRoda.normals;
 var tris = meshDaRoda.triangles;
 var colors = meshDaRoda.colors;
 var uv = meshDaRoda.uv;
 var alpha = Mathf.Abs(hit.sidewaysSlip);
 var skid = hit.sidewaysDir * RastrosDoVeiculo.larguraDoRastro / 2f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.forwardDir);
 skid -= hit.forwardDir * RastrosDoVeiculo.larguraDoRastro * 0.1f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.sidewaysDir);
 if(KMh > (75.0f/RastrosDoVeiculo.sensibilidade) && Mathf.Abs(colisor.rpm) < (3.0f / RastrosDoVeiculo.sensibilidade)){
 if (colisor.isGrounded) {
 alpha = 10;
 }
 }
 float maximaDerrapagem = 1.2f/RastrosDoVeiculo.sensibilidade;
 if (KMh < 20.0f * (Mathf.Clamp (RastrosDoVeiculo.sensibilidade, 1, 3))) {
 if (Mathf.Abs(hit.forwardSlip) > maximaDerrapagem) {
 if (colisor.isGrounded) {
 alpha = 10;
 }
 }
 }
 for (int x = 0; x < RastrosDoVeiculo.OutrosTerrenos.Length; x++) {
 string tagg = RastrosDoVeiculo.OutrosTerrenos [x].tagChao;
 if (hit.collider.gameObject.tag == tagg) {
 if (RastrosDoVeiculo.OutrosTerrenos [x].rastroContinuo == true) {
 alpha = 10;
 }
 break;
 }
 }
 if (alpha < (1 / RastrosDoVeiculo.sensibilidade)) {
 return false;
 }
 float distance = (last[indiceLastMark] - hit.point - skid).sqrMagnitude;
 float alphaAplic = Mathf.Clamp (alpha, 0.0f, 1.0f);
 if(variavelBooleana) {
 if (distance < 0.04f) {
 return true;
 }
 Array.Resize(ref tris, tris.Length + 6);
 }
 Array.Resize(ref vertices, vertices.Length + 2);
 Array.Resize(ref normals, normals.Length + 2);
 Array.Resize(ref colors, colors.Length + 2);
 Array.Resize(ref uv, uv.Length + 2);
 var verLenght = vertices.Length;
 vertices[verLenght - 1] = hit.point + hit.normal * RastrosDoVeiculo.DistanciaDoChao - skid + hit.sidewaysDir * deslocamentoLateral;
 vertices[verLenght - 2] = hit.point + hit.normal * RastrosDoVeiculo.DistanciaDoChao + skid + hit.sidewaysDir * deslocamentoLateral;
 normals[verLenght - 1] = normals[verLenght - 2] = hit.normal;
 //
 Color corRastro = RastrosDoVeiculo.CorPadrao;
 corRastro.a = Mathf.Clamp (alphaAplic * RastrosDoVeiculo.OpacidadePadrao, 0.01f, 1.0f);
 for (int x = 0; x < RastrosDoVeiculo.OutrosTerrenos.Length; x++) {
 string tagg = RastrosDoVeiculo.OutrosTerrenos [x].tagChao;
 if (hit.collider.gameObject.tag == tagg) {
 corRastro = RastrosDoVeiculo.OutrosTerrenos [x].corDoRastro;
 corRastro.a = Mathf.Clamp (alphaAplic * RastrosDoVeiculo.OutrosTerrenos [x].OpacidadeDoRastro, 0.01f, 1.0f);
 break;
 }
 }
 colors[verLenght - 1] = colors[verLenght - 2] = corRastro;
 //

 if(variavelBooleana) {
 tris[tris.Length - 1] = verLenght - 2;
 tris[tris.Length - 2] = verLenght - 1;
 tris[tris.Length - 3] = verLenght - 3;
 tris[tris.Length - 4] = verLenght - 3;
 tris[tris.Length - 5] = verLenght - 4;
 tris[tris.Length - 6] = verLenght - 2;
 uv[verLenght - 1] = uv[verLenght - 3] + Vector2.right * distance*0.01f;
 uv[verLenght - 2] = uv[verLenght - 4] + Vector2.right * distance*0.01f;
 }
 else {
 uv[verLenght - 1] = Vector2.zero;
 uv[verLenght - 2] = Vector2.up;
 }
 last[indiceLastMark] = vertices [vertices.Length - 1];
 meshDaRoda.vertices = vertices;
 meshDaRoda.normals = normals;
 meshDaRoda.triangles = tris;
 meshDaRoda.colors = colors;
 meshDaRoda.uv = uv;
 return true;
 }

 Mesh GerarRendRef(Material skdMaterial){
 GameObject rendRef = new GameObject("SKDMark");
 rendRef.AddComponent<MeshFilter>();
 rendRef.AddComponent<MeshRenderer>();
 rendRef.hideFlags = HideFlags.HideAndDontSave;
 rendRef.GetComponent<MeshFilter>().mesh = new Mesh();
 rendRef.GetComponent<MeshRenderer>().material = skdMaterial;
 rendRef.GetComponent<MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
 rendRef.GetComponent<MeshFilter> ().mesh.MarkDynamic ();
 return rendRef.GetComponent<MeshFilter>().mesh;
 }
 void SetarValoresRastros(){
 Material skidmarkMaterial = new Material( RastrosDoVeiculo.shaderDerrapagens );
 skidmarkMaterial.mainTexture = CriarTexturaRastros ();
 skidmarkMaterial.SetTexture ("_NormalMap", CriarNormalMapRastros ());
 skidmarkMaterial.SetFloat ("_NormFactor", RastrosDoVeiculo.intensidadeNormalMap);
 skidmarkMaterial.SetFloat ("_Glossiness", RastrosDoVeiculo.smoothness);
 skidmarkMaterial.SetFloat ("_Metallic", RastrosDoVeiculo.metallic);
 Color corRastro = RastrosDoVeiculo.CorPadrao;
 corRastro.a = RastrosDoVeiculo.OpacidadePadrao;
 skidmarkMaterial.color = corRastro;
 //
 RodasDoVeiculo.RodaFrenteDir.rendSKDmarks = GerarRendRef(skidmarkMaterial);
 RodasDoVeiculo.RodaFrenteEsq.rendSKDmarks = GerarRendRef(skidmarkMaterial);
 RodasDoVeiculo.RodaTrazDir.rendSKDmarks = GerarRendRef(skidmarkMaterial);
 RodasDoVeiculo.RodaTrazEsq.rendSKDmarks = GerarRendRef(skidmarkMaterial);
 for (int x = 0; x < RodasDoVeiculo.RodasExtraVeiculo.Length; x++) {
 RodasDoVeiculo.RodasExtraVeiculo[x].rendSKDmarks = GerarRendRef(skidmarkMaterial);
 }
 }
 public Texture CriarTexturaRastros(){
 var texture = new Texture2D(32, 32, TextureFormat.ARGB32, false);
 Color corTransparente1 = new Color (1.0f, 1.0f, 1.0f, 0.15f);
 Color corTransparente2 = new Color (1.0f, 1.0f, 1.0f, 0.6f);
 for (int x = 0; x < 32; x++) {
 for (int y = 0; y < 32; y++) {
 texture.SetPixel(x, y, Color.white);
 }
 }
 for (int y = 0; y < 32; y++) {
 for (int x = 0; x < 32; x++) {
 if (y == 0 || y == 1 || y == 30 || y == 31) {
 texture.SetPixel (x, y, corTransparente1);
 }
 if (y == 6 || y == 7 || y == 15 || y == 16 || y == 24 || y == 25) {
 texture.SetPixel (x, y, corTransparente2);
 }
 }
 }
 texture.Apply();
 return texture;
 }
 public Texture CriarNormalMapRastros(){
 var texture = new Texture2D(32, 32, TextureFormat.ARGB32, false);
 Color corTransparente1 = new Color (0.0f, 0.0f, 0.0f, 0.5f);
 Color corTransparente2 = new Color (0.0f, 0.0f, 0.0f, 1.0f);
 for (int x = 0; x < 32; x++) {
 for (int y = 0; y < 32; y++) {
 texture.SetPixel(x, y, Color.white);
 }
 }
 for (int y = 0; y < 32; y++) {
 for (int x = 0; x < 32; x++) {
 if (y == 0 || y == 1 || y == 30 || y == 31) {
 texture.SetPixel (x, y, corTransparente1);
 }
 if (y == 6 || y == 7 || y == 15 || y == 16 || y == 24 || y == 25) {
 texture.SetPixel (x, y, corTransparente2);
 }
 }
 }
 texture.Apply();
 return texture;
 }
}


Shader utilizado(para criar um shader basta clicar com o botão direito>create>shader>standard surface shader)
Código:
Shader "Derrapagem" {
 Properties {
 _MainTex ("Albedo (RGB)", 2D) = "white" {}
 _NormalMap("NormalMap", 2D) = "bump" {}
 _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
        _NormFactor ("Normal Strength", Range (0,1)) = 1
 }
 SubShader {
 Tags {
 "Queue"="Transparent"
     "RenderType"="Transparent"
 }
 LOD 200
 CGPROGRAM
 #pragma surface surf Standard fullforwardshadows alpha:fade
        #pragma target 3.0

 sampler2D _MainTex;
 sampler2D _NormalMap;
 half _NormFactor;

 struct Input {
 float2 uv_MainTex;
 float2 uv_NormalMap;
            float4 colorr: COLOR;
 };

 half _Glossiness;
 half _Metallic;

 void surf (Input IN, inout SurfaceOutputStandard o) {
 half4 c = tex2D (_MainTex, IN.uv_MainTex) * IN.colorr;
 o.Albedo = c.rgb * IN.colorr.rgb;;
 o.Normal = UnpackScaleNormal (tex2D (_NormalMap, IN.uv_NormalMap),_NormFactor);
 o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
 o.Alpha = c.a * IN.colorr.a;
 }
 ENDCG
 }
 FallBack "Diffuse"
}


Última edição por MarcosSchultz em Sex Fev 03, 2017 1:33 am, editado 6 vez(es)
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por karllus250 em Sab Jul 16, 2016 9:38 pm

marcos nao conseguir 

aparece isso:

karllus250
Avançado
Avançado

Masculino PONTOS : 728
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por ScorpionG4mer em Sab Jul 16, 2016 10:38 pm

Marcos o script tá muito show, quanto mais vejo suas aulas e crio meus scripts vejo o quanto longe estou do seu nível de programação e isso é muito empolgante rsrs

ScorpionG4mer
Avançado
Avançado

Masculino PONTOS : 908
REPUTAÇÃO : 43
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Sab Jul 16, 2016 10:55 pm

karllus250 escreveu:marcos nao conseguir 

aparece isso:

Você está jogando o shader em um shader ou está criando 2 scripts?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Sab Jul 16, 2016 10:56 pm

ScorpionG4mer escreveu:Marcos o script tá muito show, quanto mais vejo suas aulas e crio meus scripts vejo o quanto longe estou do seu nível de programação e isso é muito empolgante rsrs
vlww Very Happy
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por karllus250 em Sab Jul 16, 2016 11:23 pm

Criando um script e um shader

karllus250
Avançado
Avançado

Masculino PONTOS : 728
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por luKkaSs em Dom Jul 17, 2016 12:40 am

nuusss que foda
avatar
luKkaSs
MembroAvançado

Masculino PONTOS : 812
REPUTAÇÃO : 16
Idade : 21
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Dom Jul 17, 2016 1:16 am

karllus250 escreveu:Criando um script e um shader

Está colocando o nome corretamente no script?

Posta print da tela toda mostrando aonde estão o script e o shader
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por higormartins em Dom Jul 31, 2016 10:46 pm

Desculpa incomodar mais deu uma treta aki ta dando esse erro se alguém souber como arruma.

Failed getting triangles. Submesh topology is lines or points.
UnityEngine.Mesh:get_triangles()
MarcasDeDerrapagem:GerarRastroDasRodas(WheelCollider, Mesh, Boolean, Single) (at Assets/Script/MarcasDeDerrapagem.cs:140)
MarcasDeDerrapagem:ChecarChaoParaRastros() (at Assets/Script/MarcasDeDerrapagem.cs:103)
MarcasDeDerrapagem:LateUpdate() (at Assets/Script/MarcasDeDerrapagem.cs:88)

higormartins
Iniciante
Iniciante

PONTOS : 595
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Dom Jul 31, 2016 11:03 pm

Você criou o shader?  linkou as rodas e o shader no script? por que o código não está achando o material das rodas.

Qual versão da Unity você está usando?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por rafaelxd5 em Sex Set 23, 2016 9:26 pm

Eai Galera estou recebendo o seguinte erro:

"Failed getting triangles. Submesh topology is lines or points.
UnityEngine.Mesh:get_triangles()
MarcasDeDerrapagem:GerarRastroDasRodas(WheelCollider, Mesh, Boolean, Single) (at Assets/Scripts/MarcasDeDerrapagem.cs:140)
MarcasDeDerrapagem:ChecarChaoParaRastros() (at Assets/Scripts/MarcasDeDerrapagem.cs:103)
MarcasDeDerrapagem:LateUpdate() (at Assets/Scripts/MarcasDeDerrapagem.cs:88)"

Exatamente Aqui : 
Código:
private bool GerarRastroDasRodas(WheelCollider colisor, Mesh meshDaRoda, bool variavelBooleana, float deslocamentoLateral) {
 WheelHit hit;
 colisor.GetGroundHit (out hit);
 var vertices = meshDaRoda.vertices;
 var normals = meshDaRoda.normals;
 var tris = meshDaRoda.triangles; // Erro <~~~~ Aqui!
 var colors = meshDaRoda.colors;
 var uv = meshDaRoda.uv;
 var alpha = Mathf.Abs(hit.sidewaysSlip);
 var skid = hit.sidewaysDir * RastrosDoVeiculo.larguraDoRastro / 2f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.forwardDir);
 skid -= hit.forwardDir * RastrosDoVeiculo.larguraDoRastro * 0.1f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.sidewaysDir);
 if(KMh > (75.0f/RastrosDoVeiculo.sensibilidade) && Mathf.Abs(colisor.rpm) < (3.0f / RastrosDoVeiculo.sensibilidade)){
 if (colisor.isGrounded) {
 alpha = 10;
 }
 }

Não estou conseguindo resolver.Esse erro não para o Jogo mas causa um pouco de lag. (Unity Version : 5.1.2F1)

rafaelxd5
Membro
Membro

Masculino PONTOS : 729
REPUTAÇÃO : 6
Idade : 18
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Dom Set 25, 2016 5:45 pm

rafaelxd5 escreveu:Eai Galera estou recebendo o seguinte erro:

"Failed getting triangles. Submesh topology is lines or points.
UnityEngine.Mesh:get_triangles()
MarcasDeDerrapagem:GerarRastroDasRodas(WheelCollider, Mesh, Boolean, Single) (at Assets/Scripts/MarcasDeDerrapagem.cs:140)
MarcasDeDerrapagem:ChecarChaoParaRastros() (at Assets/Scripts/MarcasDeDerrapagem.cs:103)
MarcasDeDerrapagem:LateUpdate() (at Assets/Scripts/MarcasDeDerrapagem.cs:88)"

Exatamente Aqui : 
Código:
private bool GerarRastroDasRodas(WheelCollider colisor, Mesh meshDaRoda, bool variavelBooleana, float deslocamentoLateral) {
 WheelHit hit;
 colisor.GetGroundHit (out hit);
 var vertices = meshDaRoda.vertices;
 var normals = meshDaRoda.normals;
 var tris = meshDaRoda.triangles; // Erro <~~~~ Aqui!
 var colors = meshDaRoda.colors;
 var uv = meshDaRoda.uv;
 var alpha = Mathf.Abs(hit.sidewaysSlip);
 var skid = hit.sidewaysDir * RastrosDoVeiculo.larguraDoRastro / 2f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.forwardDir);
 skid -= hit.forwardDir * RastrosDoVeiculo.larguraDoRastro * 0.1f * Vector3.Dot(colisor.attachedRigidbody.velocity.normalized, hit.sidewaysDir);
 if(KMh > (75.0f/RastrosDoVeiculo.sensibilidade) && Mathf.Abs(colisor.rpm) < (3.0f / RastrosDoVeiculo.sensibilidade)){
 if (colisor.isGrounded) {
 alpha = 10;
 }
 }

Não estou conseguindo resolver.Esse erro não para o Jogo mas causa um pouco de lag. (Unity Version : 5.1.2F1)

Este erro não faz sentido, os componentes são gerados no script O.o

Você está linkando os objetos corretamente no script? sem faltar nenhum?

Ahh, tente atualizar a sua Unity para 5.3 ou superior... muitas coisas foram corrigidas.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por Sansão em Ter Nov 15, 2016 6:04 pm

karllus250 escreveu:marcos nao conseguir 

aparece isso:
Cara já solucionou o caso???
Achei a resposta voce ta esquecendo de arrumar no começo do script coloque isso:
     public class RastrVeiculo : MonoBehaviour {

Sansão
Iniciante
Iniciante

PONTOS : 459
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Qui Fev 02, 2017 5:50 pm

Script atualizado... 3 bugs corrigidos
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por MarcosSchultz em Sex Fev 03, 2017 1:16 am

Código atualizado novamente... agora temos um shader novo e o script gera um normalMap para as marcas de derrapagem Very Happy

Também foram incrementados os efeitos de smoothness e Metallic
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9862
REPUTAÇÃO : 1706
Idade : 21
Á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] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por SAPODJ em Seg Out 02, 2017 1:26 am

show de bola.. não querendo abusar mas ja abusando!! poderia me passar o script desta camera? vlw

SAPODJ
Iniciante
Iniciante

PONTOS : 90
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)

Mensagem por Madness em Seg Out 02, 2017 12:38 pm

SAPODJ escreveu:show de bola.. não querendo abusar mas ja abusando!! poderia me passar o script desta camera? vlw
https://www.assetstore.unity3d.com/en/#!/content/81759 - Asset free do Marcos na assetstore.
avatar
Madness
Designer

Masculino PONTOS : 939
REPUTAÇÃO : 163
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#



Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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