A game about forced loneliness, made by TACStudios
1using UnityEngine;
2
3namespace Unity.VisualScripting
4{
5 /// <summary>
6 /// Listens to the OnApplicationQuit on OnApplicationPause
7 /// hooks to trigger the serialization of saved variables into PlayerPrefs.
8 /// </summary>
9 [Singleton(Name = "VisualScripting SavedVariablesSerializer", Automatic = true, Persistent = true)]
10 [AddComponentMenu("")]
11 [DisableAnnotation]
12 [IncludeInSettings(false)]
13 [VisualScriptingHelpURL(typeof(VariablesSaver))]
14 public class VariablesSaver : MonoBehaviour, ISingleton
15 {
16 private void Awake()
17 {
18 Singleton<VariablesSaver>.Awake(this);
19 }
20
21 private void OnDestroy()
22 {
23 Singleton<VariablesSaver>.OnDestroy(this);
24 }
25
26 private void OnApplicationQuit()
27 {
28 SavedVariables.OnExitPlayMode();
29 ApplicationVariables.OnExitPlayMode();
30 }
31
32 private void OnApplicationPause(bool isPaused)
33 {
34 if (!isPaused)
35 {
36 return;
37 }
38
39 SavedVariables.OnExitPlayMode();
40 ApplicationVariables.OnExitPlayMode();
41 }
42
43 public static VariablesSaver instance => Singleton<VariablesSaver>.instance;
44
45 public static void Instantiate() => Singleton<VariablesSaver>.Instantiate();
46 }
47}