using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class PlanetSelector : MonoBehaviour { public AgingController agingController; public TimeManager timeManager; public Button previousButton; public Button nextButton; public TextMeshProUGUI ageText; public TextMeshProUGUI planetText; public Material skyboxMaterial; private int currentPlanetIndex = 2; private string[] planetNames = { "Меркурії", "Венері", "Землі", "Місяці", "Марсі", "Юпітері", "Сатурні", "Урані", "Нептуні", "Плутоні" }; private float[] dayLengthHours = { 1407.6f, 5832.5f, 24f, 708.7f, 24.6f, 9.9f, 10.7f, 17.2f, 16.1f, 153.3f }; private float[] daysInYear = { 88f, 225f, 365f, 365f, 687f, 4333f, 10759f, 30687f, 60190f, 90560f }; private float[] agingDurations = { 5f, 10f, 20f, 20f, 28f, 40f, 40f, 40f, 40f, 40f }; private float[] orbitalYears = { 0.24f, 0.62f, 1f, 1f, 1.88f, 11.86f, 29.46f, 84.01f, 164.8f, 248f }; private Color[] skyboxColors = { new Color(0.75f,0.78f,0.85f), new Color(1.25f,0.85f,0.55f), new Color(1f,1f,1f), new Color(0.75f,0.85f,1.2f), new Color(1.35f,0.55f,0.45f), new Color(0.7f,1.15f,1.25f), new Color(0.95f,0.65f,1.35f), new Color(0.55f,1.25f,1.1f), new Color(0.45f,0.65f,1.35f), new Color(0.7f,0.7f,1.35f) }; private float[] skyboxExposure = { 0.7f, 0.8f, 0.9f, 0.95f, 1.15f, 0.9f, 0.8f, 0.7f, 0.6f, 0.9f }; private float[] skyboxRotation = { 10f, 25f, 0f, 5f, 15f, 40f, 60f, 90f, 120f, 160f }; void Start() { ApplyPlanet(); } void Update() { if (timeManager.showAge) { int earthAge = Mathf.RoundToInt(agingController.currentAge); ageText.text = "Вік: " + earthAge + " із 70 років"; float planetAge = timeManager.fromBeginning ? agingController.currentAge / orbitalYears[currentPlanetIndex] : (agingController.currentAge - 25f) / orbitalYears[currentPlanetIndex]; planetText.text = "На " + planetNames[currentPlanetIndex] + " пройшло: " + planetAge.ToString("F1") + " років"; } else { ageText.text = "Тривалість доби на " + planetNames[currentPlanetIndex] + ": " + dayLengthHours[currentPlanetIndex].ToString("F1") + " годин"; planetText.text = "У році на " + planetNames[currentPlanetIndex] + ": " + daysInYear[currentPlanetIndex].ToString("F0") + " діб"; } } public void OnNextButton() { if (currentPlanetIndex < planetNames.Length - 1) { currentPlanetIndex++; ApplyPlanet(); } } public void OnPreviousButton() { if (currentPlanetIndex > 0) { currentPlanetIndex--; ApplyPlanet(); } } void ApplyPlanet() { agingController.agingDuration = agingDurations[currentPlanetIndex]; agingController.RestartAging(); agingController.ApplyHairColor(currentPlanetIndex); skyboxMaterial.SetColor("_Tint", skyboxColors[currentPlanetIndex]); skyboxMaterial.SetFloat("_Exposure", skyboxExposure[currentPlanetIndex]); skyboxMaterial.SetFloat("_Rotation", skyboxRotation[currentPlanetIndex]); DynamicGI.UpdateEnvironment(); previousButton.interactable = currentPlanetIndex > 0; nextButton.interactable = currentPlanetIndex < planetNames.Length - 1; } }