75 lines
1.9 KiB
C#
75 lines
1.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace ArcadeVP
|
|
{
|
|
public class SkidMarks : MonoBehaviour
|
|
{
|
|
private TrailRenderer skidMark;
|
|
private ParticleSystem smoke;
|
|
public ArcadeVehicleController carController;
|
|
float fadeOutSpeed;
|
|
private void Awake()
|
|
{
|
|
smoke = GetComponent<ParticleSystem>();
|
|
skidMark = GetComponent<TrailRenderer>();
|
|
skidMark.emitting = false;
|
|
skidMark.startWidth = carController.skidWidth;
|
|
|
|
}
|
|
|
|
|
|
private void OnEnable()
|
|
{
|
|
skidMark.enabled = true;
|
|
}
|
|
private void OnDisable()
|
|
{
|
|
skidMark.enabled = false;
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void FixedUpdate()
|
|
{
|
|
if (carController.grounded())
|
|
{
|
|
|
|
if (Mathf.Abs(carController.carVelocity.x) > 10)
|
|
{
|
|
fadeOutSpeed = 0f;
|
|
skidMark.materials[0].color = Color.black;
|
|
skidMark.emitting = true;
|
|
}
|
|
else
|
|
{
|
|
skidMark.emitting = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
skidMark.emitting = false;
|
|
|
|
}
|
|
if (!skidMark.emitting)
|
|
{
|
|
fadeOutSpeed += Time.deltaTime / 2;
|
|
Color m_color = Color.Lerp(Color.black, new Color(0f, 0f, 0f, 0f), fadeOutSpeed);
|
|
skidMark.materials[0].color = m_color;
|
|
if (fadeOutSpeed > 1)
|
|
{
|
|
skidMark.Clear();
|
|
}
|
|
}
|
|
|
|
// smoke
|
|
if (skidMark.emitting == true)
|
|
{
|
|
smoke.Play();
|
|
}
|
|
else { smoke.Stop(); }
|
|
|
|
}
|
|
}
|
|
}
|