using UnityEngine; public class RotateOrbit : MonoBehaviour { [Header("Revolusi (kaya tata surya)")] public Vector3 revolutionAxis = Vector3.up; public float revolutionSpeed = 30f; [Header("Kemiringan / precession")] public Vector3 tiltAxis = Vector3.right; public float tiltSpeed = 10f; // --- TAMBAHAN BARU --- private Quaternion startRotation; // Menyimpan posisi asli FBX private bool isAnimating = true; // Status gerak atau diam void Start() { // PENTING: Simpan rotasi lokal awal saat aplikasi mulai // LocalRotation dipakai karena dia anak dari Inti Atom startRotation = transform.localRotation; } void Update() { // Kalau dimatikan (Stop), jangan jalankan kode putar-putar if (!isAnimating) return; // --- KODE LAMA KAMU --- // Muter mengelilingi nukleus transform.Rotate(revolutionAxis * revolutionSpeed * Time.deltaTime, Space.World); // Muter sumbu orbit (atas-bawah / miring) transform.Rotate(tiltAxis * tiltSpeed * Time.deltaTime, Space.Self); } // Fungsi ini yang akan dipanggil oleh Manager/Button public void SetAnimationState(bool isActive) { isAnimating = isActive; if (!isAnimating) { // RESET: Kembalikan ke posisi awal (Snap langsung) transform.localRotation = startRotation; // Opsional: Kalau mau resetnya halus (animasi), butuh Coroutine. // Tapi untuk AR, snap langsung lebih aman biar posisinya akurat sesuai FBX. } } // Fungsi Toggle (Opsional, buat shortcut) public void ToggleAnimation() { SetAnimationState(!isAnimating); } }