projectEli/Assets/NeoFPS/Core/Settings/FpsSettings.cs
2022-11-06 20:28:33 -05:00

63 lines
2.0 KiB
C#

using System;
using UnityEngine;
namespace NeoFPS
{
public class FpsSettings
{
public static FpsAudioSettings audio { get; private set; }
public static FpsGameplaySettings gameplay { get; private set; }
public static FpsGraphicsSettings graphics { get; private set; }
public static FpsInputSettings input { get; private set; }
public static FpsKeyBindings keyBindings { get; private set; }
public static FpsGamepadSettings gamepad { get; private set; }
private static GameObject s_RuntimeSettingsObject = null;
public static GameObject runtimeSettingsObject
{
get
{
if (s_RuntimeSettingsObject == null)
{
s_RuntimeSettingsObject = new GameObject("NeoFpsSettingsRuntime");
UnityEngine.Object.DontDestroyOnLoad(s_RuntimeSettingsObject);
}
return s_RuntimeSettingsObject;
}
}
[RuntimeInitializeOnLoadMethod (RuntimeInitializeLoadType.BeforeSceneLoad)]
static void RuntimeInitializeOnLoad ()
{
audio = FpsAudioSettings.GetInstance ("FpsSettings_Audio");
gameplay = FpsGameplaySettings.GetInstance ("FpsSettings_Gameplay");
graphics = FpsGraphicsSettings.GetInstance ("FpsSettings_Graphics");
input = FpsInputSettings.GetInstance ("FpsSettings_Input");
keyBindings = FpsKeyBindings.GetInstance("FpsSettings_KeyBindings");
gamepad = FpsGamepadSettings.GetInstance("FpsSettings_Gamepad");
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
static void RuntimeInitializeOnLoadPost()
{
audio.Load();
gameplay.Load();
graphics.Load();
input.Load();
keyBindings.Load();
gamepad.Load();
}
public static void Save ()
{
audio.Save ();
gameplay.Save ();
graphics.Save ();
input.Save ();
keyBindings.Save ();
gamepad.Save ();
}
}
}