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:
Baixos Brasil - Jogo de Carro Brasileiro!
[TUTORIAL] Sistema de Oficina de Carros
ERRO sharedassets0
Como criar várias ações (funções) em um único botão ???
Remover tela inicial Unity ?
Me ajudem nesse script, quero repoduzir uma animação ao pressionar "w"
OFICINA/PERSONALIZAÇÃO DO PLAYER
como fazer um Objeto ir parando com o tempo?
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
[TUTORIAL] Menu pause ( AVANÇADO )
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
FÍSICA+ESTABILIDADE DO TUTORIAL DO MARCOS
[DÚVIDA] SISTEMA DE HEADSHOT
reconhecimento de fala simples
oque eu tenho que colocar nesse script?
Ad Mob
Botão Unity
[RESOLVIDO] Linkar Meshes das Rodas!
fazer o player perde vida e sua barra de vida descer conforme o dano
(pedido) script para ativar física
Aguá do meu jogo esta rosa depois de ter passado o projeto para outro computador
[TUTORIAL] Como fazer um TELEPORTE
Script Shader
Sistema de frio??
Como colocar o um CORPO funcional no FPS
Som ambiente,Interação de objetos unity 3D
Telemportar objeto?
[RESOLVIDO] Compilar para android?
Quais melhores estratégias para divulgação de um jogo indie?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Flying Bird - PlayStore
Direção da câmera ser para onde o player vai ao apertar a tecla de ir para frente!!
Props Animations Asset
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
[TUTORIAL] Trocar a textura de um objeto pelas texturas de uma lista ( array ) seguindo a ordem da mesma.
MouseOver alterar de cores solidas para texturas alterar script
Como tiro a tela de seleção de resolução que aparece quando abro o jogo?
VENHAM CONTEMPLAR CUBOID! E entrem para a equipe!
chamare indice de uma List<> em outro script
Unity Assets Duvida
pessoal prefab para colider ou um raycast
[RESOLVIDO] Help. texto através dos objetos unity
[TUTORIAL] C# .NET | Instalar IDE para compilar c# para outras plataformas
Mudar Cor do Veiculo!
[RESOLVIDO]tirar vida do inimigo com click do mause
[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Por que os modelos que importo para o unity desaparecem?
Falha de Segurança na Unity
[TUTORIAL] Gerar números aleatórios SEM REPETIR (método com lista)
Cuboid 0.8, divulguem por favor
Tutorial: jogo estilo minecraft
Meu Jogo em desenvolvimento
Verificar texto De um Input Field
Como Separar Variaveis ?
Duvida sobre script
Search the Rats update 1.2
Erro unity
Chamando animação por script
Como fazer objeto voltar a posição inicial? só que ele estará "em movimento"
Button Facebook Mobile!
Lancei um jogo na Play Store - Tic Tac ToeSP.
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
10 ASSETS GRATUITOS PARA UNITY 5
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Detectar se uma variável mudou e a quanto tempo ela mudou
Como posso criar um inputfield alfabtical alguem sabe?
ativar animação ao apertar botão (android)
Ai Enemy Inimigo Parando do nada
Duvida Extranhicima
gameobject transparente
[TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
Menu de Construções estilo jogo "Banished"
Instanciar
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
[RESOLVIDO] Inteligência Artificial (básica) - interação Rigidbody2D Collision
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Jogo De Corrida Infinita (2D)[Mobile]
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Jogo crashando depois da build
[TUTORIAL] Adicionar força a um Rigidbody na direção onde o mouse está
Duvida com Script VIDA
Iniciar em Unity
Escolhendo cores com scroll "mouse"
[RESOLVIDO] Erro com Audio Source ???
Partindo Para Faculdade!
[DÚVIDA] COMO FAZER UM "TEXT" APARECER SÓ UMA VEZ QUANDO O GAME INICIAR?
Simple Touch Camera Script
Duvida sobre iluminação
Duplo personagem
Erro
Dúvida sobre Estado inicial
Jogo de Pesca (Física da Linha)
Water
[RESOLVIDO] ERRO SUN SHAFTS (script nao aparece)
Animações do Player. Como faço????
MAGIA SEGUIR ALVO COM TAG APOS SER INSTANCIADA
Formação de equipe para talvez um jogo Unturned+Battlegrounds - Unity c#
[DÚVIDA] FAZER JOGO ESTILO O ARROW.IO
[RESOLVIDO] Opções no menu?
Hoje à(s) 5:12 pm
Hoje à(s) 4:59 pm
Hoje à(s) 4:55 pm
Hoje à(s) 4:27 pm
Hoje à(s) 3:39 pm
Hoje à(s) 2:55 pm
Hoje à(s) 12:16 pm
Hoje à(s) 11:09 am
Hoje à(s) 8:36 am
Ontem à(s) 10:08 pm
Ontem à(s) 9:58 pm
Ontem à(s) 9:56 pm
Ontem à(s) 9:43 pm
Ontem à(s) 9:14 pm
Ontem à(s) 9:10 pm
Ontem à(s) 9:08 pm
Ontem à(s) 8:12 pm
Ontem à(s) 7:57 pm
Ontem à(s) 7:22 pm
Ontem à(s) 7:09 pm
Ontem à(s) 6:03 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:24 pm
Ontem à(s) 1:19 pm
Ontem à(s) 1:13 pm
Ontem à(s) 12:18 pm
Ontem à(s) 11:01 am
Ontem à(s) 9:59 am
Ontem à(s) 9:50 am
Ontem à(s) 9:11 am
Ontem à(s) 8:44 am
Ontem à(s) 5:30 am
Ontem à(s) 12:25 am
Dom Ago 20, 2017 8:20 pm
Dom Ago 20, 2017 8:09 pm
Dom Ago 20, 2017 7:56 pm
Dom Ago 20, 2017 7:29 pm
Dom Ago 20, 2017 7:22 pm
Dom Ago 20, 2017 6:00 pm
Dom Ago 20, 2017 4:31 pm
Dom Ago 20, 2017 2:54 pm
Dom Ago 20, 2017 2:51 pm
Dom Ago 20, 2017 1:52 pm
Dom Ago 20, 2017 12:40 pm
Dom Ago 20, 2017 11:11 am
Dom Ago 20, 2017 12:31 am
Dom Ago 20, 2017 12:22 am
Dom Ago 20, 2017 12:17 am
Dom Ago 20, 2017 12:17 am
Sab Ago 19, 2017 11:44 pm
Sab Ago 19, 2017 8:55 pm
Sab Ago 19, 2017 8:46 pm
Sab Ago 19, 2017 8:35 pm
Sab Ago 19, 2017 7:40 pm
Sab Ago 19, 2017 5:14 pm
Sab Ago 19, 2017 4:17 pm
Sab Ago 19, 2017 3:47 pm
Sab Ago 19, 2017 10:33 am
Sab Ago 19, 2017 10:25 am
Sab Ago 19, 2017 5:53 am
Sex Ago 18, 2017 10:20 pm
Sex Ago 18, 2017 10:00 pm
Sex Ago 18, 2017 8:39 pm
Sex Ago 18, 2017 6:39 pm
Sex Ago 18, 2017 3:01 pm
Sex Ago 18, 2017 6:01 am
Sex Ago 18, 2017 12:04 am
Qui Ago 17, 2017 10:22 pm
Qui Ago 17, 2017 9:55 pm
Qui Ago 17, 2017 9:48 pm
Qui Ago 17, 2017 9:42 pm
Qui Ago 17, 2017 4:22 pm
Qui Ago 17, 2017 3:38 pm
Qui Ago 17, 2017 2:54 pm
Qui Ago 17, 2017 2:35 pm
Qui Ago 17, 2017 1:14 pm
Qui Ago 17, 2017 12:51 pm
Qui Ago 17, 2017 12:48 pm
Qui Ago 17, 2017 11:47 am
Qui Ago 17, 2017 11:09 am
Qui Ago 17, 2017 7:46 am
Qua Ago 16, 2017 10:19 pm
Qua Ago 16, 2017 9:55 pm
Qua Ago 16, 2017 9:10 pm
Qua Ago 16, 2017 9:03 pm
Qua Ago 16, 2017 8:01 pm
Qua Ago 16, 2017 1:17 pm
Qua Ago 16, 2017 11:49 am
Qua Ago 16, 2017 8:01 am
Ter Ago 15, 2017 7:29 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 1:47 pm
Ter Ago 15, 2017 11:52 am
Ter Ago 15, 2017 6:21 am
Seg Ago 14, 2017 11:28 pm
Seg Ago 14, 2017 11:04 pm
Seg Ago 14, 2017 10:06 pm
Andrew.SP
Duarte
michelly
PauloFR
MRX
dstaroski
Duarte
deikson
MRX
zOverLexYT
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
PauloFR
dstaroski
Duarte
dstaroski
Duarte
poker14k
Zecandy
DUT
Gabriel César CORINTHIANS
michelly
MRX
AndyShow
AndyShow
Callyde Jr
dstaroski
Strikegames
zZAndersonZz
dstaroski
dstaroski
Regis garcia
marconi
SERGIOCS
Madness
Zecandy
cody0033
Valakinhas
ManoTrevor
Madness
BRGC
PauloFR
PauloFR
PauloFR
tom ramber
cody0033
NyanHeavyBR
rafaelllsd
cody0033
cody0033
BRGC
Manawydan
ManoTrevor
arnaldojunior
mbppedro
Eduardoro39
BRGC
dstaroski
dstaroski
Strikegames
zOverLexYT
Bruno
dstaroski
Dom3000
MiguelLuiz
zZAndersonZz
Jhin
Dom3000
juliano001
deikson
MasterWizzard
Duarte
MrTFGamer1
MatheusNani
deikson
HeF Soft
getrudes12@gmail.com
BloodyBS
deikson
Bruno
dstaroski
SERGIOCS
Vinicius F.
Duarte
Gabriel César O
Henrique0102
Zecandy
Callyde Jr
dstaroski
ffabim
AndyShow
Phph09
glauco
Bruno
Callyde Jr
Bruno11playerG
Gabriel César O
cody0033

[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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 611
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 : 753
REPUTAÇÃO : 36
Á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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 611
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 : 695
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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 478
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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 612
REPUTAÇÃO : 6
Idade : 17
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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 342
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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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 : 9508
REPUTAÇÃO : 1613
Idade : 20
Á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

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