| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Shatter Toolkit
- // Copyright 2015 Gustav Olsson
- using UnityEngine;
- namespace ShatterToolkit.Helpers
- {
- public class ShatterOnCollision : MonoBehaviour
- {
- public float requiredVelocity = 1.0f;
- public float cooldownTime = 0.5f;
-
- protected float timeSinceInstantiated;
-
- public void Update()
- {
- timeSinceInstantiated += Time.deltaTime;
- }
-
- public void OnCollisionEnter(Collision collision)
- {
- if (timeSinceInstantiated >= cooldownTime)
- {
- if (collision.relativeVelocity.magnitude >= requiredVelocity)
- {
- // Find the new contact point
- foreach (ContactPoint contact in collision.contacts)
- {
- // Make sure that we don't shatter if another object in the hierarchy was hit
- if (contact.otherCollider == collision.collider)
- {
- contact.thisCollider.SendMessage("Shatter", contact.point, SendMessageOptions.DontRequireReceiver);
-
- break;
- }
- }
- }
- }
- }
- }
- }
|