Untitled
unknown
csharp
8 months ago
2.9 kB
12
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