From 201675720c25804ece90a8c56b58ccb6119dbf31 Mon Sep 17 00:00:00 2001 From: Pasha Bibko <156938226+PashaBibko@users.noreply.github.com> Date: Thu, 27 Nov 2025 21:32:47 +0000 Subject: [PATCH] [Refactor] GlobalOrbitalSettings --- .gitignore | 3 +++ Assets/Scenes/SampleScene.unity | 12 ++++++------ Assets/Scripts/GlobalOrbitalSettings.cs | 26 ++++++++----------------- Assets/Scripts/OrbitalPosition.cs | 12 ++++++------ 4 files changed, 23 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index ee43705..b20160a 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,9 @@ sysinfo.txt /Win64-Build /Build +# Rider IDE project files +.idea/ + # Crashlytics generated file crashlytics-build.properties diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index e5983f0..0145b31 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -680,12 +680,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b1a209741ad95946a6f0138e93431c4, type: 3} m_Name: m_EditorClassIdentifier: - m_RadiusSpeed: 0.5 - m_DistanceSpeed: 0.6 - m_GapDistance: 1 - m_RingPrefab: {fileID: 8276642441649562681, guid: 2b69b065f2beade4d91167a23508e29e, type: 3} - m_EnemyPrefab: {fileID: 345795220292517504, guid: ec4a924a38b208240b281bd7983b07b7, type: 3} - m_ModifierPrefab: {fileID: 7367671708397998036, guid: 780bf151465173e4a82da2763da54b2b, type: 3} + k__BackingField: 0.5 + k__BackingField: 0.6 + k__BackingField: 1 + k__BackingField: {fileID: 8276642441649562681, guid: 2b69b065f2beade4d91167a23508e29e, type: 3} + k__BackingField: {fileID: 345795220292517504, guid: ec4a924a38b208240b281bd7983b07b7, type: 3} + k__BackingField: {fileID: 7367671708397998036, guid: 780bf151465173e4a82da2763da54b2b, type: 3} --- !u!4 &1827131557 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/GlobalOrbitalSettings.cs b/Assets/Scripts/GlobalOrbitalSettings.cs index e00c5ba..22f4e4b 100644 --- a/Assets/Scripts/GlobalOrbitalSettings.cs +++ b/Assets/Scripts/GlobalOrbitalSettings.cs @@ -1,26 +1,16 @@ using UnityEngine; -public class GlobalOrbitalSettings : MonoBehaviour +public class Settings : MonoBehaviour { - private static GlobalOrbitalSettings Instance = null; + public static Settings Instance; - [SerializeField, Range(0f, Mathf.PI * 2)] float m_RadiusSpeed = 2f; - public static float RadiusSpeed => Instance.m_RadiusSpeed; + [field: SerializeField, Range(0f, Mathf.PI * 2)] public float RadiusSpeed { get; private set; } = 2f; + [field: SerializeField, Range(0f, 2f)] public float DistanceSpeed { get; private set; } = 0.6f; + [field: SerializeField, Range(0f, 1f)] public float GapDistance { get; private set; } = 0.3f; - [SerializeField, Range(0f, 2f)] float m_DistanceSpeed = 0.6f; - public static float DistanceSpeed => Instance.m_DistanceSpeed; - - [SerializeField, Range(0f, 1f)] float m_GapDistance = 0.3f; - public static float GapDistance => Instance.m_GapDistance; - - [SerializeField] GameObject m_RingPrefab; - public static GameObject RingPrefab => Instance.m_RingPrefab; - - [SerializeField] GameObject m_EnemyPrefab; - public static GameObject EnemyPrefab => Instance.m_EnemyPrefab; - - [SerializeField] GameObject m_ModifierPrefab; - public static GameObject ModifierPrefab => Instance.m_ModifierPrefab; + [field: SerializeField] public GameObject RingPrefab { get; private set; } + [field: SerializeField] public GameObject EnemyPrefab { get; private set; } + [field: SerializeField] public GameObject ModifierPrefab { get; private set; } private void Start() => Instance = this; } diff --git a/Assets/Scripts/OrbitalPosition.cs b/Assets/Scripts/OrbitalPosition.cs index bc8e438..52795cf 100644 --- a/Assets/Scripts/OrbitalPosition.cs +++ b/Assets/Scripts/OrbitalPosition.cs @@ -129,9 +129,9 @@ public class GlobalOrbitalPositionManager : MonoBehaviour private void Update() { - if (Time.time - m_TimeOfLastRingSpawn > (GlobalOrbitalSettings.GapDistance / m_LocalDeltaTimeScale)) + if (Time.time - m_TimeOfLastRingSpawn > (Settings.Instance.GapDistance / m_LocalDeltaTimeScale)) { - GameObject newRing = Instantiate(GlobalOrbitalSettings.RingPrefab); + GameObject newRing = Instantiate(Settings.Instance.RingPrefab); newRing.transform.localScale = new Vector3(12f, 12f, 1); Ring ring = newRing.AddComponent(); @@ -150,7 +150,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour m_CurrentRingAllowsSpawning = Random.Range(0, 25) != 0; if (!m_CurrentRingAllowsSpawning && AllowPlayerInput) - Instantiate(GlobalOrbitalSettings.ModifierPrefab); + Instantiate(Settings.Instance.ModifierPrefab); } List toRemove = new(); @@ -158,7 +158,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour foreach (Ring ring in m_Rings) { - float diff = LocalDeltaTime * GlobalOrbitalSettings.DistanceSpeed; + float diff = LocalDeltaTime * Settings.Instance.DistanceSpeed; ring.transform.localScale -= new Vector3(diff, diff, 0f); LineRenderer lineRenderer = ring.GetComponentInChildren(); @@ -207,7 +207,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour float distance = m_Distances[orbitalPosition.m_AttachedRing]; orbitalPosition.m_DistanceFromCentre = distance; - orbitalPosition.m_DistanceAlongRadius = (orbitalPosition.m_DistanceAlongRadius + LocalDeltaTime * GlobalOrbitalSettings.RadiusSpeed * orbitalPosition.m_SpinSpeed) % (Mathf.PI * 2); + orbitalPosition.m_DistanceAlongRadius = (orbitalPosition.m_DistanceAlongRadius + LocalDeltaTime * Settings.Instance.RadiusSpeed * orbitalPosition.m_SpinSpeed) % (Mathf.PI * 2); orbitalPosition.m_Owner.position = orbitalPosition.TranslateToVec3(); } @@ -232,7 +232,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour } if (Random.Range(0, 20) == 0 && AllowPlayerInput && m_CurrentRingAllowsSpawning) - Instantiate(GlobalOrbitalSettings.EnemyPrefab); + Instantiate(Settings.Instance.EnemyPrefab); } public static void RegisterOrbitalPositionInstance(OrbitalPosition newInstance) =>