using UnityEngine; public class SetInertiaTension : MonoBehaviour { private Vector3 defaultInertia; private Vector3 stableInertia = Vector3.one; public float collisionValue; private Rigidbody rig; private HoldableObject holdable; private void Start() { rig = GetComponent(); holdable = GetComponent(); defaultInertia = rig.inertiaTensor; } private void Update() { collisionValue = Mathf.Lerp(collisionValue, 0f, Time.deltaTime * 7f); rig.inertiaTensor = Vector3.Lerp(stableInertia, defaultInertia, Mathf.Clamp(collisionValue, 0f, 1f)); } private void OnCollisionEnter(Collision collision) { if (!(collision.transform.root == base.transform.root) && !(collision.transform.root == holdable.holder)) { collisionValue += collision.relativeVelocity.magnitude * 0.4f; } } private void OnCollisionStay(Collision collision) { if (!(collision.transform.root == base.transform.root) && !(collision.transform.root == holdable.holder)) { collisionValue += collision.relativeVelocity.magnitude * 0.2f; } } }