// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2024 Kybernetik //
#if UNITY_EDITOR
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Animancer.Editor
{
/// [Editor-Only]
/// Stores data which needs to survive assembly reloading (such as from script compilation), but can be discarded
/// when the Unity Editor is closed.
///
/// https://kybernetik.com.au/animancer/api/Animancer.Editor/TemporarySettings
internal class TemporarySettings : ScriptableObject
{
/************************************************************************************************************************/
#region Instance
/************************************************************************************************************************/
private static TemporarySettings _Instance;
/// Finds an existing instance of this class or creates a new one.
private static TemporarySettings Instance
=> AnimancerEditorUtilities.FindOrCreate(
ref _Instance,
HideFlags.HideAndDontSave | HideFlags.DontUnloadUnusedAsset);
/************************************************************************************************************************/
protected virtual void OnEnable()
{
OnEnableSelection();
}
protected virtual void OnDisable()
{
OnDisableSelection();
}
/************************************************************************************************************************/
#endregion
/************************************************************************************************************************/
#region Event Selection
/************************************************************************************************************************/
private readonly Dictionary