Untitled
unknown
csharp
4 days ago
2.9 kB
9
Indexable
// Global settings (JSON) private void SaveSettings() { Settings settings = new Settings { BaselineDepth = baselineSlider.value, XAxisScale = xAxisScaleSlider.value, ZAxisScale = zAxisScaleSlider.value, XAxisFlipped = distanceShader.isXAxisFlipped, YAxisFlipped = distanceShader.isYAxisFlipped }; string json = JsonConvert.SerializeObject(settings, Formatting.Indented); Directory.CreateDirectory(Path.GetDirectoryName(SettingsPath)); File.WriteAllText(SettingsPath, json); } // PlayerPrefs private void SaveAllPlayerPrefs() { PlayerPrefs.SetFloat(YPositionKey, yPositionSlider.value); PlayerPrefs.SetFloat(FossilScaleKey, fossilScaleSlider.value); PlayerPrefs.SetInt(ItemCountKey, Mathf.RoundToInt(itemCountSlider.value)); PlayerPrefs.SetFloat(RangeKey, rangeSlider.value); PlayerPrefs.SetString(LastSavedTimestampKey, System.DateTime.Now.ToString()); PlayerPrefs.Save(); } private void LoadSettings() { // Load global settings from JSON if (File.Exists(SettingsPath)) { string json = File.ReadAllText(SettingsPath); Settings settings = JsonConvert.DeserializeObject<Settings>(json); // Apply settings to UI and components LoadSliderValue(baselineSlider, settings.BaselineDepth, distanceShader.OnBaselineSliderChanged); LoadSliderValue(xAxisScaleSlider, settings.XAxisScale, distanceShader.SetXAxisScale); LoadSliderValue(zAxisScaleSlider, settings.ZAxisScale, distanceShader.SetZAxisScale); distanceShader.isXAxisFlipped = settings.XAxisFlipped; distanceShader.isYAxisFlipped = settings.YAxisFlipped; UpdateButtonColor(xAxisFlipButton, settings.XAxisFlipped); UpdateButtonColor(yAxisFlipButton, settings.YAxisFlipped); } // Load instance-specific settings from PlayerPrefs float yPosition = PlayerPrefs.GetFloat(YPositionKey, yPositionSlider.value); float fossilScale = PlayerPrefs.GetFloat(FossilScaleKey, 1.0f); int itemCount = PlayerPrefs.GetInt(ItemCountKey, 5); float range = PlayerPrefs.GetFloat(RangeKey, rangeSlider.value); // Apply PlayerPrefs values LoadSliderValue(yPositionSlider, yPosition, ApplyYPositionChange); LoadSliderValue(fossilScaleSlider, fossilScale, ApplyFossilScaleChange); LoadSliderValue(itemCountSlider, itemCount, ApplyItemCountChange); LoadSliderValue(rangeSlider, range, ApplyRangeChange); } // Helper method to apply slider values without triggering events private void LoadSliderValue(Slider slider, float value, System.Action<float> setterMethod) { if (slider != null) { slider.SetValueWithoutNotify(value); // Prevent unwanted callbacks during loading setterMethod?.Invoke(value); // Update the appropriate label if needed } }
Editor is loading...
Leave a Comment