using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotationController : MonoBehaviour { #region Read-Only Fields public float RotationPeriod => m_RotationPeriod; public Vector3 Position => transform.position; public Vector3 RotationAxis => m_RotationAxis; public float CorrelusStrength => m_correlusStrength; #endregion Read-Only Fields [SerializeField] private float m_RotationPeriod; [SerializeField] private Vector3 m_RotationAxis = Vector3.forward; [SerializeField] private float m_correlusStrength = 100; public Vector3 getDownDirection(Vector3 objectPosition, bool normalized = true) { if (normalized) return Vector3.ProjectOnPlane((objectPosition - transform.position), m_RotationAxis).normalized; else return Vector3.ProjectOnPlane((objectPosition - transform.position), m_RotationAxis); } public Vector3 getPerpendicularDirection(Vector3 objectPosition) { return Vector3.Cross(RotationAxis, getDownDirection(objectPosition)).normalized; } private void FixedUpdate() { //transform.Rotate(m_RotationAxis, 360 / m_RotationPeriod * Time.fixedDeltaTime); } }