smart-interactive-display/Assets/GadGame/Scripts/SO/SceneFlowConfig.cs

52 lines
1.5 KiB
C#
Raw Normal View History

using UnityEngine;
#if UNITY_EDITOR
2024-04-15 20:57:02 -07:00
using System.IO;
using UnityEditor;
#endif
2024-04-11 01:55:35 -07:00
namespace GadGame.SO
{
[CreateAssetMenu]
public class SceneFlowConfig : ScriptableObject
{
public SceneReference IdleScene;
public SceneReference PassByScene;
public SceneReference ViewedScene;
public SceneReference EndGageScene;
public SceneReference GameScene;
public SceneReference CTAScene;
2024-04-15 20:57:02 -07:00
#if UNITY_EDITOR
public static SceneFlowConfig FindSettings()
{
var guids = AssetDatabase.FindAssets($"t:{nameof(SceneFlowConfig)}");
if (guids.Length > 1) Debug.LogWarning("Found multiple settings files, using the first.");
switch (guids.Length)
{
case 0:
return null;
default:
var path = AssetDatabase.GUIDToAssetPath(guids[0]);
return AssetDatabase.LoadAssetAtPath<SceneFlowConfig>(path);
}
}
public static SceneFlowConfig GetOrCreateSettings()
{
var settings = FindSettings();
if (settings == null)
{
settings = CreateInstance<SceneFlowConfig>();
string path = "Assets/GadGame/SO/SceneFlowConfig";
2024-04-15 20:57:02 -07:00
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
AssetDatabase.CreateAsset(settings, $"{path}/Scene Flow Config.asset");
AssetDatabase.SaveAssets();
}
return settings;
}
#endif
2024-04-11 01:55:35 -07:00
}
}