using System.Collections; using System.Collections.Generic; using UnityEngine; public class Magnet : MonoBehaviour { Rigidbody _rb; Rigidbody rb { get { if (!_rb) _rb = GetComponent(); return _rb; } } public float strength = 100; private void OnTriggerStay(Collider other) { var otherRb = other.attachedRigidbody; if (otherRb && otherRb.isKinematic == false) { if (!otherRb.GetComponent()) { return; } Vector3 dir = otherRb.position - transform.position; float dirSq = Vector3.SqrMagnitude(dir); float forceMagnitude = strength * (1.0f / dirSq); Vector3 force = dir.normalized * forceMagnitude; otherRb.AddForce(-force); if (rb) rb.AddForce(force); } } }