2024-04-15 20:57:02 -07:00
|
|
|
using System.IO;
|
|
|
|
using UnityEditor;
|
2024-04-11 01:55:35 -07:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
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 RewardScene;
|
|
|
|
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/_Game/SO/SceneFlowConfig";
|
|
|
|
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
|
|
|
}
|
|
|
|
}
|