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:
Como usar uma animação de uma arma animada na Unity...
[Tutorial] Porta ativada por alavanca
[DUVIDA] "encostar" em um GameObject e Tomar Dano
[TUTORIAL] Ligar e Desligar Lanterna
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Vazer a camera seguir o personagem porem quando ela chegar na parede ela pare de se movimenta
MIRA PARA JOGO DE FPS ESTILO CSGO
Game Resistência
Parede ocas
Modificar uma barrinha!
[Quase Pronto] Survival Block. Testem e mandem os bugs pra mim.
[ME AJUDA] O player não se movimenta...
Dúvida sobre multiplayer!
SIRENE ESTILO POLÍCIA MILITAR
Movimentaçao player
Unity Microfone
Cena Loading para carregar proximo Level
SITE MODELOS 3D PARA USO COMERCIAL
Home Simulator 2017 (Estilo The Sims em 1ª Pessoa) (Download Grátis)
OBJETO GIRAR QUANDO ARRASTAR O MOUSE
MUDAR FLOAT NO FIM DE UMA ANIMAÇÃO
RagDoll + Download Free -- feito por um gringo
Instanciar objetos aonde mira
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[AJUDA] Cronometro
disolver/ desintegrar um objeto
COMO POSSO FAZER O INIMIGO MORRER COM TIRO?
Fazer objeto preview andar de gridsize em gridsize
[PEDIDO] Designers ou Entendedores (Capa,Menu e ToolTip) 3 Imagens
[RESOLVIDO] Publicando Apk Parte 2
[TUTORIAL] IA Simples
Ajustar o Brilho do LensFlare de Acordo com a Distância
CONTROLE ARCADE PARA JOGO DE CORRIDA
[TUTORIAL] IA Simples Parte 2 (Atirar)
[DEMO] Survival Block
Aprimoramento IA Inimiga
Batalha de Canhão
[RESOLVIDO] Camera Collider
Todos os inimigos morrem
[____TÓPICO LIVRE____] FALE O QUE QUISER
Canal de tutoriais android
Area Para modeladores
Inimigo ao seguir flutua [ajuda]
Chamar Metodo
Gerador de códigos
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Duvida sobre patrulha aleatória
Demo de jogo para testarem...
Criação de uma mensagem notificação em objeto 3d no unity
[TUTORIAL] Fazer um VOLANTE com UI, para Android
[DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
[Duvida] Como fazer uma luz se desativar ao ficar longe dela
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
GRAFICO BUGADO [MOBILE]
Duvida sobre array de gameobject
ERRO NO APK
ANIMAÇÃO
sincronizar um Variável String multiplayer
DUVIDAS VARIADAS
Publicando Apk na PlayStore
Curar vida ao coletar itens
(Dúvida) Rotacionar roda
Sistema de tráfego
ObjetoCair
Existe alguma forma de fazer multiplayer por lan ou por bluethooth?
Duvida Script
converter para C#
Animação de movimento
Modelos 3D para uso gratuito ou comercial
Ajuda com jogos em flash
[RESOLVIDO] Dano No Player Ajuda erro
Como fazer parar de seguir em uma distancia determinada
Meus modelos 3D em fase de experimento
Lampião Vs Zombies - FORMAÇÃO DE EQUIPE - Jogo 2D
Criando Inteligencia Artificial Para BOSS.
Problema Com Menu Inicial !!
Tutorial rpg?
Criar um objeto preso em apenas um lado
Inventario equipando roupas - Leia mas para saber
Animação não esta ativando na hora do pulo
COMO POSSO FAZER UM MULTIPLAYER?
Menu principal não funciona no mobile
tenho que alterar os scripts para transfomar um game para Android????
Movimentação, sem Rigidbody
dash estilo megaman x, suavizar
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
Como criar um sistema d interação cm objetos atraves do raycasthit?
RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
Script para recarregar cena
como chamar void do objeto em que o RayCast bateu?
modificar a agua (Tsunami e outros)
bolleana [mobile]
Nav Mesh em mapa Aleatorio
Animar meu personagem (pedido)
drop Down Converter Texto Para imagem
Criar uma animação antes de começar a fase
CONTROLE DE UM CARRO PARA MOBILE
Criar chat para Android
QUERO CRIAR UM SCRIPT PARA UM SIMULADOR DE CARRO
Hoje à(s) 1:51 am
Hoje à(s) 1:31 am
Hoje à(s) 12:31 am
Hoje à(s) 12:30 am
Ontem à(s) 11:11 pm
Ontem à(s) 8:56 pm
Ontem à(s) 8:54 pm
Ontem à(s) 8:05 pm
Ontem à(s) 7:43 pm
Ontem à(s) 7:18 pm
Ontem à(s) 6:52 pm
Ontem à(s) 6:48 pm
Ontem à(s) 4:48 pm
Ontem à(s) 3:46 pm
Ontem à(s) 1:50 pm
Ontem à(s) 1:37 pm
Ontem à(s) 12:29 pm
Ontem à(s) 10:05 am
Qui Mar 23, 2017 10:13 pm
Qui Mar 23, 2017 8:30 pm
Qui Mar 23, 2017 6:55 pm
Qui Mar 23, 2017 4:50 pm
Qui Mar 23, 2017 4:46 pm
Qui Mar 23, 2017 4:38 pm
Qui Mar 23, 2017 4:33 pm
Qui Mar 23, 2017 2:39 pm
Qui Mar 23, 2017 1:33 pm
Qui Mar 23, 2017 1:19 pm
Qui Mar 23, 2017 12:46 pm
Qui Mar 23, 2017 8:56 am
Qua Mar 22, 2017 7:47 pm
Qua Mar 22, 2017 7:38 pm
Qua Mar 22, 2017 7:30 pm
Qua Mar 22, 2017 3:28 pm
Ter Mar 21, 2017 11:50 pm
Ter Mar 21, 2017 10:14 pm
Ter Mar 21, 2017 7:22 pm
Ter Mar 21, 2017 6:08 pm
Ter Mar 21, 2017 5:00 pm
Ter Mar 21, 2017 4:43 pm
Ter Mar 21, 2017 3:22 pm
Ter Mar 21, 2017 3:08 pm
Ter Mar 21, 2017 2:13 pm
Ter Mar 21, 2017 12:58 pm
Ter Mar 21, 2017 11:47 am
Ter Mar 21, 2017 10:53 am
Ter Mar 21, 2017 10:41 am
Ter Mar 21, 2017 10:13 am
Ter Mar 21, 2017 7:26 am
Ter Mar 21, 2017 12:26 am
Ter Mar 21, 2017 12:10 am
Ter Mar 21, 2017 12:09 am
Ter Mar 21, 2017 12:05 am
Ter Mar 21, 2017 12:02 am
Seg Mar 20, 2017 11:58 pm
Seg Mar 20, 2017 11:55 pm
Seg Mar 20, 2017 9:10 pm
Seg Mar 20, 2017 7:57 pm
Seg Mar 20, 2017 6:41 pm
Seg Mar 20, 2017 4:31 pm
Seg Mar 20, 2017 8:10 am
Dom Mar 19, 2017 11:32 pm
Dom Mar 19, 2017 8:50 pm
Dom Mar 19, 2017 8:20 pm
Dom Mar 19, 2017 12:06 pm
Sab Mar 18, 2017 10:31 pm
Sab Mar 18, 2017 10:01 pm
Sab Mar 18, 2017 8:26 pm
Sab Mar 18, 2017 8:06 pm
Sab Mar 18, 2017 6:53 pm
Sab Mar 18, 2017 5:31 pm
Sab Mar 18, 2017 9:41 am
Sab Mar 18, 2017 7:23 am
Sex Mar 17, 2017 10:02 pm
Sex Mar 17, 2017 3:21 pm
Sex Mar 17, 2017 12:42 pm
Sex Mar 17, 2017 10:47 am
Qui Mar 16, 2017 11:16 pm
Qui Mar 16, 2017 9:33 pm
Qui Mar 16, 2017 9:32 pm
Qui Mar 16, 2017 9:28 pm
Qui Mar 16, 2017 9:18 pm
Qui Mar 16, 2017 9:16 pm
Qui Mar 16, 2017 9:09 pm
Qui Mar 16, 2017 9:08 pm
Qui Mar 16, 2017 9:07 pm
Qui Mar 16, 2017 9:06 pm
Qui Mar 16, 2017 8:59 pm
Qui Mar 16, 2017 8:56 pm
Qui Mar 16, 2017 8:52 pm
Qui Mar 16, 2017 8:48 pm
Qui Mar 16, 2017 8:44 pm
Qui Mar 16, 2017 8:44 pm
Qui Mar 16, 2017 8:40 pm
Qui Mar 16, 2017 8:20 pm
Qui Mar 16, 2017 7:33 pm
Qui Mar 16, 2017 5:32 pm
Qui Mar 16, 2017 5:32 pm
Qui Mar 16, 2017 5:12 pm
Sheyk
PauloFR
wender
wender
LuizCalegari
Gabriel César O
Gabriel César O
Weverton Borges da Silva
maikonluis
HeF Software
Junim
Junim
vilão
wender
bravoent
Abilio M.S
Marc7
Callyde Jr
hen000
Weverton Borges da Silva
rafaelllsd
MateusWTP
Gabriel César O
Gabriel César O
Gabriel César O
dstaroski
Callyde Jr
hackernew404
Madness
Paizudo
Gabriel César O
AnderGames
Gabriel César O
Matrirxp
rafaelllsd
Matrirxp
AndyShow
ffabim
rafaelllsd
PauloFR
MikaelSteam
PauloFR
bravoent
Matrirxp
Ghosthy
DuViDoSo34
arnaldojunior
Édipo
Phillip
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
lucasfera15
Khilua
PauloFR
Paizudo
willtuck
rafaelllsd
rafaelllsd
IanLuan
John Rambo
kalielson
willtuck
MikaelSteam
joabr
Luiz Mauro TCC
bravoent
AndyShow
joabr
BatataName
Callyde Jr
John Rambo
Callyde Jr
IanLuan
MarcosSchultz
Junim
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Phillip
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
kalielson
MarcosSchultz
MarcosSchultz
Junim
Junim
Gabriel César O
Gabriel César O

[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 : 8096
REPUTAÇÃO : 1139
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 : 461
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 : 590
REPUTAÇÃO : 32
Á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 : 8096
REPUTAÇÃO : 1139
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 : 8096
REPUTAÇÃO : 1139
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 : 461
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 : 545
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 : 8096
REPUTAÇÃO : 1139
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 : 328
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 : 8096
REPUTAÇÃO : 1139
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 : 462
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 : 8096
REPUTAÇÃO : 1139
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 : 192
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 : 8096
REPUTAÇÃO : 1139
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 : 8096
REPUTAÇÃO : 1139
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