mirror of
https://github.com/GTA-ASM/SanAndreasUnity
synced 2024-12-18 08:23:08 +00:00
66 lines
1.5 KiB
C#
66 lines
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|