You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
2 months ago
|
// Animancer // Copyright 2020 Kybernetik //
|
||
|
|
||
|
#if UNITY_EDITOR
|
||
|
|
||
|
using UnityEditor;
|
||
|
|
||
|
namespace Animancer.Editor
|
||
|
{
|
||
|
/// <summary>[Editor-Only] [Internal] Automatically selects the <see cref="ReadMe"/> on startup.</summary>
|
||
|
/// <remarks>This script is in the Examples folder so that it gets deleted along with them.</remarks>
|
||
|
[InitializeOnLoad]
|
||
|
internal static class ShowReadMeOnStartup
|
||
|
{
|
||
|
/************************************************************************************************************************/
|
||
|
|
||
|
static ShowReadMeOnStartup()
|
||
|
{
|
||
|
const string SessionStateKey = "Animancer.HasShownReadMe";
|
||
|
|
||
|
if (SessionState.GetBool(SessionStateKey, false))
|
||
|
return;
|
||
|
|
||
|
EditorApplication.delayCall += () =>
|
||
|
{
|
||
|
var asset = FindReadMe();
|
||
|
|
||
|
if (asset == null ||
|
||
|
asset.DontShowOnStartup)
|
||
|
return;
|
||
|
|
||
|
SessionState.SetBool(SessionStateKey, true);
|
||
|
|
||
|
EditorApplication.delayCall += () =>
|
||
|
Selection.activeObject = asset;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/************************************************************************************************************************/
|
||
|
|
||
|
private static ReadMe FindReadMe()
|
||
|
{
|
||
|
var guids = AssetDatabase.FindAssets("t:ReadMe");
|
||
|
for (int i = 0; i < guids.Length; i++)
|
||
|
{
|
||
|
var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
|
||
|
var asset = AssetDatabase.LoadAssetAtPath<ReadMe>(assetPath);
|
||
|
if (asset != null)
|
||
|
return asset;
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
/************************************************************************************************************************/
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|