mirror of
https://github.com/GTA-ASM/SanAndreasUnity
synced 2024-11-27 22:40:17 +00:00
66 lines
No EOL
1.5 KiB
C#
66 lines
No EOL
1.5 KiB
C#
using UnityEngine;
|
|
|
|
namespace SanAndreasUnity.Behaviours.Vehicles
|
|
{
|
|
[RequireComponent(typeof(Renderer))]
|
|
[DisallowMultipleComponent]
|
|
[AddComponentMenu("RVP/Damage/Shatter Part", 2)]
|
|
|
|
//Class for parts that shatter
|
|
public class ShatterPart : MonoBehaviour
|
|
{
|
|
[System.NonSerialized]
|
|
public Renderer rend;
|
|
|
|
[System.NonSerialized]
|
|
public bool shattered;
|
|
|
|
public float breakForce = 5;
|
|
|
|
[Tooltip("Transform used for maintaining seams when deformed after shattering")]
|
|
public Transform seamKeeper;
|
|
|
|
[System.NonSerialized]
|
|
public Material initialMat;
|
|
|
|
public Material brokenMaterial;
|
|
public ParticleSystem shatterParticles;
|
|
public AudioSource shatterSnd;
|
|
|
|
private void Start()
|
|
{
|
|
rend = GetComponent<Renderer>();
|
|
if (rend)
|
|
{
|
|
initialMat = rend.sharedMaterial;
|
|
}
|
|
}
|
|
|
|
public void Shatter()
|
|
{
|
|
if (!shattered)
|
|
{
|
|
shattered = true;
|
|
|
|
if (shatterParticles)
|
|
{
|
|
shatterParticles.Play();
|
|
}
|
|
|
|
if (brokenMaterial)
|
|
{
|
|
rend.sharedMaterial = brokenMaterial;
|
|
}
|
|
else
|
|
{
|
|
rend.enabled = false;
|
|
}
|
|
|
|
if (shatterSnd)
|
|
{
|
|
shatterSnd.Play();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |