diff options
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TrackResourceCache.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TrackResourceCache.cs | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TrackResourceCache.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TrackResourceCache.cs deleted file mode 100644 index 8eda6fe..0000000 --- a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TrackResourceCache.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; -using UnityEngine.Timeline; - -namespace UnityEditor.Timeline -{ - static class TrackResourceCache - { - private static Dictionary<System.Type, GUIContent> s_TrackIconCache = new Dictionary<Type, GUIContent>(10); - private static Dictionary<System.Type, Color> s_TrackColorCache = new Dictionary<Type, Color>(10); - public static GUIContent s_DefaultIcon = EditorGUIUtility.IconContent("UnityEngine/ScriptableObject Icon"); - - public static GUIContent GetTrackIcon(TrackAsset track) - { - if (track == null) - return s_DefaultIcon; - - GUIContent content = null; - if (!s_TrackIconCache.TryGetValue(track.GetType(), out content)) - { - content = FindTrackIcon(track); - s_TrackIconCache[track.GetType()] = content; - } - return content; - } - - public static Color GetTrackColor(TrackAsset track) - { - if (track == null) - return Color.white; - - // Try to ensure DirectorStyles is initialized first - // Note: GUISkin.current must exist to be able do so - if (!DirectorStyles.IsInitialized && GUISkin.current != null) - DirectorStyles.ReloadStylesIfNeeded(); - - Color color; - if (!s_TrackColorCache.TryGetValue(track.GetType(), out color)) - { - var attr = track.GetType().GetCustomAttributes(typeof(TrackColorAttribute), true); - if (attr.Length > 0) - { - color = ((TrackColorAttribute)attr[0]).color; - } - else - { - // case 1141958 - // There was an error initializing DirectorStyles - if (!DirectorStyles.IsInitialized) - return Color.white; - - color = DirectorStyles.Instance.customSkin.colorDefaultTrackDrawer; - } - - s_TrackColorCache[track.GetType()] = color; - } - return color; - } - - public static void ClearTrackIconCache() - { - s_TrackIconCache.Clear(); - } - - public static void SetTrackIcon<T>(GUIContent content) where T : TrackAsset - { - s_TrackIconCache[typeof(T)] = content; - } - - public static void ClearTrackColorCache() - { - s_TrackColorCache.Clear(); - } - - public static void SetTrackColor<T>(Color c) where T : TrackAsset - { - s_TrackColorCache[typeof(T)] = c; - } - - private static GUIContent FindTrackIcon(TrackAsset track) - { - // backwards compatible -- try to load from Gizmos folder - Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Gizmos/" + track.GetType().Name + ".png"); - if (texture != null) - return new GUIContent(texture); - - // try to load based on the binding type - var binding = track.outputs.FirstOrDefault(); - if (binding.outputTargetType != null) - { - // Type calls don't properly handle monobehaviours, because an instance is required to - // get the monoscript icons - if (typeof(MonoBehaviour).IsAssignableFrom(binding.outputTargetType)) - { - texture = null; - var scripts = UnityEngine.Resources.FindObjectsOfTypeAll<MonoScript>(); - foreach (var script in scripts) - { - if (script.GetClass() == binding.outputTargetType) - { - texture = AssetPreview.GetMiniThumbnail(script); - break; - } - } - } - else - { - texture = EditorGUIUtility.FindTexture(binding.outputTargetType); - } - - if (texture != null) - return new GUIContent(texture); - } - - // default to the scriptable object icon - return s_DefaultIcon; - } - } -} |
