A game about forced loneliness, made by TACStudios
1using UnityEngine;
2using UnityEngine.SceneManagement;
3
4namespace Unity.VisualScripting
5{
6 [Singleton(Name = "VisualScripting SceneVariables", Automatic = true, Persistent = false)]
7 [RequireComponent(typeof(Variables))]
8 [DisableAnnotation]
9 [AddComponentMenu("")]
10 [IncludeInSettings(false)]
11 [VisualScriptingHelpURL(typeof(SceneVariables))]
12 public sealed class SceneVariables : MonoBehaviour, ISingleton
13 {
14 public static SceneVariables Instance(Scene scene)
15 {
16 return SceneSingleton<SceneVariables>.InstanceIn(scene);
17 }
18
19 public static bool InstantiatedIn(Scene scene)
20 {
21 return SceneSingleton<SceneVariables>.InstantiatedIn(scene);
22 }
23
24 public static VariableDeclarations For(Scene? scene)
25 {
26 Ensure.That(nameof(scene)).IsNotNull(scene);
27
28 return Instance(scene.Value).variables.declarations;
29 }
30
31 private void Awake()
32 {
33 SceneSingleton<SceneVariables>.Awake(this);
34 }
35
36 private void OnDestroy()
37 {
38 SceneSingleton<SceneVariables>.OnDestroy(this);
39 }
40
41 private Variables _variables;
42
43 public Variables variables
44 {
45 get
46 {
47 if (_variables == null)
48 {
49 _variables = gameObject.GetOrAddComponent<Variables>();
50 }
51
52 return _variables;
53 }
54 }
55 }
56}