using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class ArtificialGravity : MonoBehaviour { [SerializeField] private RotationController Ship; private Rigidbody rb; private void OnEnable() { rb = GetComponent(); rb.useGravity = false; if (Ship == null) Ship = FindObjectOfType(); } private void FixedUpdate() { ApplyGravity(); } private void ApplyGravity() { if (Ship.RotationPeriod <= 0) return; Vector3 direction = (transform.position - Ship.Position); float force = direction.magnitude * Mathf.Pow(2 * Mathf.PI / Ship.RotationPeriod, 2); rb.AddForce(direction.normalized * force * Time.fixedDeltaTime, ForceMode.Acceleration); } }