[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
+11
guimaraf
alissonRocker
Madness
SAPODJ
Sansão
rafaelxd5
higormartins
luKkaSs
ScorpionG4mer
karllus250
MarcosSchultz
15 participantes
Página 1 de 1
[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Vídeo explicando como utilizar
Script utilizado:
Shader utilizado(para criar um shader basta clicar com o botão direito>create>shader>standard surface shader)
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)
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
marcos nao conseguir
aparece isso:
aparece isso:
karllus250- Avançado
- PONTOS : 3259
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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
- PONTOS : 3446
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
karllus250 escreveu:marcos nao conseguir
aparece isso:
Você está jogando o shader em um shader ou está criando 2 scripts?
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
vlww :DScorpionG4mer 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
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Criando um script e um shader
karllus250- Avançado
- PONTOS : 3259
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
nuusss que foda
luKkaSs- MembroAvançado
- PONTOS : 3353
REPUTAÇÃO : 19
Idade : 28
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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)
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
- PONTOS : 3127
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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?
Qual versão da Unity você está usando?
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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 :
Não estou conseguindo resolver.Esse erro não para o Jogo mas causa um pouco de lag. (Unity Version : 5.1.2F1)
"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
- PONTOS : 3261
REPUTAÇÃO : 6
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
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.
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Cara já solucionou o caso???karllus250 escreveu:marcos nao conseguir
aparece isso:
Achei a resposta voce ta esquecendo de arrumar no começo do script coloque isso:
public class RastrVeiculo : MonoBehaviour {
Sansão- Iniciante
- PONTOS : 2992
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Código atualizado novamente... agora temos um shader novo e o script gera um normalMap para as marcas de derrapagem :D
Também foram incrementados os efeitos de smoothness e Metallic
Também foram incrementados os efeitos de smoothness e Metallic
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
show de bola.. não querendo abusar mas ja abusando!! poderia me passar o script desta camera? vlw
SAPODJ- Iniciante
- PONTOS : 2622
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
https://www.assetstore.unity3d.com/en/#!/content/81759 - Asset free do Marcos na assetstore.SAPODJ escreveu:show de bola.. não querendo abusar mas ja abusando!! poderia me passar o script desta camera? vlw
Madness- Designer
- PONTOS : 3610
REPUTAÇÃO : 222
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
MarcosSchultz escreveu:Script atualizado... 3 bugs corrigidos
alissonRocker- Iniciante
- PONTOS : 2479
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
No Unity 2017 é obrigatório que a classe herde de monobehavior, sendo assim não funciona o script.
Como o vídeo foi criado em 2016 e o script atualizado no ano passado, teria como adaptar ele ou orientar para que funcione também no Unity 2017?
Como o vídeo foi criado em 2016 e o script atualizado no ano passado, teria como adaptar ele ou orientar para que funcione também no Unity 2017?
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
guimaraf escreveu:No Unity 2017 é obrigatório que a classe herde de monobehavior, sendo assim não funciona o script.
Como o vídeo foi criado em 2016 e o script atualizado no ano passado, teria como adaptar ele ou orientar para que funcione também no Unity 2017?
O script herda o monoBehaviour, não é a primeira classe declarada que denomina o código em si, posso ter várias classes dentro do mesmo código.
Aqui funciona 100% o código ué.
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Normalmente, se você tiver um PC meio fraquinho, crie um script, espere 1 à 2 minutos e só depois abra-o, senão poderá ocorrer erros (Principalmente se você utiliza o VS 2017).
"Experiência própria ._."
"Experiência própria ._."
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
MarcosSchultz escreveu:guimaraf escreveu:No Unity 2017 é obrigatório que a classe herde de monobehavior, sendo assim não funciona o script.
Como o vídeo foi criado em 2016 e o script atualizado no ano passado, teria como adaptar ele ou orientar para que funcione também no Unity 2017?
O script herda o monoBehaviour, não é a primeira classe declarada que denomina o código em si, posso ter várias classes dentro do mesmo código.
Aqui funciona 100% o código ué.
Consegui resolver aqui, o problema era que eu estava com um puta sono e criei o script com o nome da classe errada, kkkkkk
Vlw
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
@MarcosSchultz
Uma dúvida sobre Shader, está funcionando perfeitamente, porém quando reinicio a cena, o shader que foi criado continua, tem como eu resetar o shader?
O mesmo acontece até quando troco de cena.
Obrigado
Uma dúvida sobre Shader, está funcionando perfeitamente, porém quando reinicio a cena, o shader que foi criado continua, tem como eu resetar o shader?
O mesmo acontece até quando troco de cena.
Obrigado
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Como estou estudando Unity a pouco tempo, algumas coisas me fogem do conhecimento, neste caso como faço para apagar este material quando é recarregado a cena?
Neste caso a cena foi resetada, porém o rastro continua na cena, o mesmo acontece na cena do exemplo do asset MS Vehicle System (free version)
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
(Não tem nada haver com o tópico, mas.. O seu jogo está ficando bem bonito mesmo, continue assim O_o)
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Opa valewSouris escreveu:(Não tem nada haver com o tópico, mas.. O seu jogo está ficando bem bonito mesmo, continue assim O_o)
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
guimaraf escreveu:Como estou estudando Unity a pouco tempo, algumas coisas me fogem do conhecimento, neste caso como faço para apagar este material quando é recarregado a cena?
Neste caso a cena foi resetada, porém o rastro continua na cena, o mesmo acontece na cena do exemplo do asset MS Vehicle System (free version)
Não havia reparado nesse problema
Vou ter que upar a versão 2.0 do asset free logo logo.
No sistema de SkidMarks que está na asset store, isto já está corrigido: https://assetstore.unity.com/packages/tools/particles-effects/ms-skid-marks-system-82419
Já nesse sistema free que está neste tópico, as meshes são geradas invisivelmente ainda. Vou ter que corrigir este problema
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Excelente, vou ficar no aguardo aqui, excelente asset.MarcosSchultz escreveu:guimaraf escreveu:
Neste caso a cena foi resetada, porém o rastro continua na cena, o mesmo acontece na cena do exemplo do asset MS Vehicle System (free version)
Não havia reparado nesse problema
Vou ter que upar a versão 2.0 do asset free logo logo.
No sistema de SkidMarks que está na asset store, isto já está corrigido: https://assetstore.unity.com/packages/tools/particles-effects/ms-skid-marks-system-82419
Já nesse sistema free que está neste tópico, as meshes são geradas invisivelmente ainda. Vou ter que corrigir este problema
Obrigado
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Meu script estas ok porem as maracs de outros terrenos não funciona ela replica a marca padrão , oque poderia ser onde esta o erro ???
SERGIOCS- Membro
- PONTOS : 3222
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
karllus250 escreveu:marcos nao conseguir
aparece isso:
epich307- Iniciante
- PONTOS : 1702
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Marcos primeiramente parabéns por todo o conteúdo...
Estou insatisfeito com o audio de derrapagem que coloquei no meu carro, estive pensando em integrar o audio com as marcas de derrapagem, se possível as particulas de fumaça tbm... vc acha viável?
Estou insatisfeito com o audio de derrapagem que coloquei no meu carro, estive pensando em integrar o audio com as marcas de derrapagem, se possível as particulas de fumaça tbm... vc acha viável?
garrito- Iniciante
- PONTOS : 1606
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
garrito escreveu:Marcos primeiramente parabéns por todo o conteúdo...
Estou insatisfeito com o audio de derrapagem que coloquei no meu carro, estive pensando em integrar o audio com as marcas de derrapagem, se possível as particulas de fumaça tbm... vc acha viável?
Viável sim, mas é mais complexo... eu fiz um asset só pra isso, pois é chatinho de fazer, e ainda mais de detectar os tipos de solo e tal...
Ou ainda, configurar como os áudios vão se comportar quando mais de uma roda estiver emitindo ele e talz...
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Eu estou estudando c# e seus vídeos estão me ajudando muitooo, fiquei sem entender o pq vc usouMarcosSchultz escreveu:garrito escreveu:Marcos primeiramente parabéns por todo o conteúdo...
Estou insatisfeito com o audio de derrapagem que coloquei no meu carro, estive pensando em integrar o audio com as marcas de derrapagem, se possível as particulas de fumaça tbm... vc acha viável?
Viável sim, mas é mais complexo... eu fiz um asset só pra isso, pois é chatinho de fazer, e ainda mais de detectar os tipos de solo e tal...
Ou ainda, configurar como os áudios vão se comportar quando mais de uma roda estiver emitindo ele e talz...
[Serializable] no incio sendo que a classe e a primeira variável já são públicas hehe, desculpa a pergunta
garrito- Iniciante
- PONTOS : 1606
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
garrito escreveu:Eu estou estudando c# e seus vídeos estão me ajudando muitooo, fiquei sem entender o pq vc usouMarcosSchultz escreveu:garrito escreveu:Marcos primeiramente parabéns por todo o conteúdo...
Estou insatisfeito com o audio de derrapagem que coloquei no meu carro, estive pensando em integrar o audio com as marcas de derrapagem, se possível as particulas de fumaça tbm... vc acha viável?
Viável sim, mas é mais complexo... eu fiz um asset só pra isso, pois é chatinho de fazer, e ainda mais de detectar os tipos de solo e tal...
Ou ainda, configurar como os áudios vão se comportar quando mais de uma roda estiver emitindo ele e talz...
[Serializable] no incio sendo que a classe e a primeira variável já são públicas hehe, desculpa a pergunta
[Serializable] é pra mostrar as variáveis no inspector... da pra usar outras propriedades, mas eu usei essa, hehe
Tópicos semelhantes
» [TUTORIAL] Unity 3D - AnimationCurve
» Posso usar o sistema de marcas de derrapagem como base para outro sistema?
» [TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
» [TUTORIAL] Como utilizar o aplicativo Unity Remote 4 com a UNITY 5
» [TUTORIAL] Aprenda C# - Unity 3D
» Posso usar o sistema de marcas de derrapagem como base para outro sistema?
» [TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
» [TUTORIAL] Como utilizar o aplicativo Unity Remote 4 com a UNITY 5
» [TUTORIAL] Aprenda C# - Unity 3D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos