Advertisement
Tarodev

Breakable.cs

Jun 22nd, 2021
3,308
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.85 KB | None | 1 0
  1. using UnityEngine;
  2. public class Breakable : MonoBehaviour {
  3.     [SerializeField] private GameObject _replacement;
  4.     [SerializeField] private float _breakForce = 2;
  5.     [SerializeField] private float _collisionMultiplier = 100;
  6.     [SerializeField] private bool _broken;
  7.  
  8.     void OnCollisionEnter(Collision collision) {
  9.         if(_broken) return;
  10.         if (collision.relativeVelocity.magnitude >= _breakForce) {
  11.             _broken = true;
  12.             var replacement = Instantiate(_replacement, transform.position, transform.rotation);
  13.  
  14.             var rbs = replacement.GetComponentsInChildren<Rigidbody>();
  15.             foreach (var rb in rbs) {
  16.                 rb.AddExplosionForce(collision.relativeVelocity.magnitude * _collisionMultiplier,collision.contacts[0].point,2);
  17.             }
  18.  
  19.             Destroy(gameObject);
  20.         }
  21.     }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement