Samples: Updated to 2.0.0
This commit is contained in:
parent
55d0393cf8
commit
2bcd3c63af
92
Samples~/SamplesToolbarBurst/MainToolbarBurstElement.cs
Normal file
92
Samples~/SamplesToolbarBurst/MainToolbarBurstElement.cs
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
#if UNITY_6000_3_OR_NEWER
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Toolbars;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Scripting;
|
||||
|
||||
namespace Module.NavigationTool.Editor.Burst.Toolbar
|
||||
{
|
||||
internal static class MainToolbarBurstElement
|
||||
{
|
||||
[Preserve]
|
||||
[MainToolbarElement("Toolbar/Burst", ussName = "", defaultDockIndex = 0, defaultDockPosition = MainToolbarDockPosition.Middle, menuPriority = 500)]
|
||||
public static MainToolbarElement Draw()
|
||||
{
|
||||
Styles.Initialize();
|
||||
|
||||
var isBurstEnabled = IsBurstEnabled();
|
||||
var icon = isBurstEnabled ? Styles.IconEnabled : Styles.IconDisabled;
|
||||
var content = new MainToolbarContent(icon, "Enable/disable burst compiler");
|
||||
return new MainToolbarToggle(content, IsBurstEnabled(), _ =>
|
||||
{
|
||||
EditorApplication.ExecuteMenuItem("Jobs/Burst/Enable Compilation");
|
||||
MainToolbar.Refresh("Toolbar/Burst");
|
||||
});
|
||||
}
|
||||
|
||||
private static bool IsBurstEnabled()
|
||||
{
|
||||
const string typeFullname = "Unity.Burst.Editor.BurstEditorOptions, Unity.Burst";
|
||||
const string propertyName = "EnableBurstCompilation";
|
||||
|
||||
var type = Type.GetType(typeFullname, false, true);
|
||||
|
||||
if (type == null)
|
||||
{
|
||||
Debug.LogWarningFormat("Failed to find type with name: {0}", typeFullname);
|
||||
return false;
|
||||
}
|
||||
|
||||
var property = type.GetProperty(propertyName, BindingFlags.Public | BindingFlags.Static);
|
||||
|
||||
if (property == null)
|
||||
{
|
||||
Debug.LogWarningFormat("Failed to find property with name: {0} on type: {1}", propertyName, typeFullname);
|
||||
return false;
|
||||
}
|
||||
|
||||
return (bool)property.GetValue(null);
|
||||
}
|
||||
|
||||
private static class Styles
|
||||
{
|
||||
private static bool _isInitialized;
|
||||
public static Texture2D IconEnabled;
|
||||
public static Texture2D IconDisabled;
|
||||
|
||||
private const string EditorIconFileNameLight = "tex_icon_burst_light";
|
||||
private const string EditorIconFileNameDark = "tex_icon_burst_dark";
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
if (_isInitialized)
|
||||
return;
|
||||
|
||||
IconEnabled = LoadIcon("_enabled");
|
||||
IconDisabled = LoadIcon("_disabled");
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
private static Texture2D LoadIcon(string postfix)
|
||||
{
|
||||
var iconPrefix = EditorGUIUtility.isProSkin ? EditorIconFileNameDark : EditorIconFileNameLight;
|
||||
var filename = $"{iconPrefix}{postfix}";
|
||||
var guids = AssetDatabase.FindAssets("t:texture " + filename);
|
||||
|
||||
for (var i = 0; i < guids.Length; i++)
|
||||
{
|
||||
var path = AssetDatabase.GUIDToAssetPath(guids[i]);
|
||||
var tex = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
|
||||
|
||||
if (tex != null)
|
||||
return tex;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9987eb28543a4bf288fc7cd66a5b707f
|
||||
timeCreated: 1765029787
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
#if !UNITY_6000_3_OR_NEWER
|
||||
using Module.NavigationTool.Editor.Toolbar;
|
||||
using UnityEditor;
|
||||
|
||||
|
|
@ -24,4 +25,5 @@ namespace Module.NavigationTool.Editor.Burst.Toolbar
|
|||
IsEnabled = EditorGUILayout.Toggle("Enable Burst", IsEnabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#if !UNITY_6000_3_OR_NEWER
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using JetBrains.Annotations;
|
||||
|
|
@ -95,4 +96,5 @@ namespace Module.NavigationTool.Editor.Burst.Toolbar
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
#if UNITY_6000_3_OR_NEWER
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Toolbars;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Scripting;
|
||||
|
||||
namespace Module.NavigationTool.Editor.Entities.Toolbar
|
||||
{
|
||||
internal static class MainToolbarEntitiesElement
|
||||
{
|
||||
[Preserve]
|
||||
[MainToolbarElement("Toolbar/Entities", ussName = "", defaultDockIndex = 0, defaultDockPosition = MainToolbarDockPosition.Middle, menuPriority = 500)]
|
||||
public static IEnumerable<MainToolbarElement> Draw()
|
||||
{
|
||||
Styles.Initialize();
|
||||
|
||||
return new List<MainToolbarElement>(5)
|
||||
{
|
||||
new MainToolbarButton(new MainToolbarContent(Styles.IconHierarchy, "Show/Hide entities hierarchy window"), () => ToggleWindow("HierarchyWindow")),
|
||||
new MainToolbarButton(new MainToolbarContent(Styles.IconComponents, "Show/Hide entities components window"), () => ToggleWindow("ComponentsWindow")),
|
||||
new MainToolbarButton(new MainToolbarContent(Styles.IconSystems, "Show/Hide entities systems window"), () => ToggleWindow("SystemScheduleWindow")),
|
||||
new MainToolbarButton(new MainToolbarContent(Styles.IconArchetypes, "Show/Hide entities archetypes window"), () => ToggleWindow("ArchetypesWindow")),
|
||||
new MainToolbarButton(new MainToolbarContent(Styles.IconJournaling, "Show/Hide entities journaling window"), () => ToggleWindow("EntitiesJournalingWindow"))
|
||||
};
|
||||
}
|
||||
|
||||
private static void ToggleWindow(string typeName)
|
||||
{
|
||||
var fullname = $"{nameof(Unity)}.Entities.Editor.{typeName}, Unity.Entities.Editor";
|
||||
var type = Type.GetType(fullname, false, true);
|
||||
|
||||
if (type != null)
|
||||
{
|
||||
var all = Resources.FindObjectsOfTypeAll(type);
|
||||
|
||||
if (all.Length != 0)
|
||||
{
|
||||
for (var i = 0; i < all.Length; i++)
|
||||
{
|
||||
if (all[i] is EditorWindow window)
|
||||
window.Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorWindow.GetWindow(type);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarningFormat("Failed to find type with name: {0}", fullname);
|
||||
}
|
||||
}
|
||||
|
||||
private static class Styles
|
||||
{
|
||||
public static Texture2D IconHierarchy;
|
||||
public static Texture2D IconComponents;
|
||||
public static Texture2D IconSystems;
|
||||
public static Texture2D IconArchetypes;
|
||||
public static Texture2D IconJournaling;
|
||||
|
||||
private static bool _isInitialized;
|
||||
|
||||
private const string EditorDefaultResourcesPath = "Packages/com.unity.entities/Editor Default Resources/";
|
||||
private const string EditorIconsLightDirectory = EditorDefaultResourcesPath + "icons/light";
|
||||
private const string EditorIconsDarkDirectory = EditorDefaultResourcesPath + "icons/dark";
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
if (_isInitialized)
|
||||
return;
|
||||
|
||||
IconHierarchy = LoadIcon("EntityGroup/EntityGroup");
|
||||
IconComponents = LoadIcon("Component/Component");
|
||||
IconSystems = LoadIcon("System/System");
|
||||
IconArchetypes = LoadIcon("Archetype/Archetype");
|
||||
IconJournaling = LoadIcon("Journaling/Journaling");
|
||||
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
private static Texture2D LoadIcon(string name)
|
||||
{
|
||||
var iconsDirectory = EditorIconsLightDirectory;
|
||||
|
||||
if (EditorGUIUtility.isProSkin)
|
||||
iconsDirectory = EditorIconsDarkDirectory;
|
||||
|
||||
var obj = AssetDatabase.LoadAssetAtPath($"{iconsDirectory}/{name}.png", typeof(Texture2D));
|
||||
return obj != null ? (Texture2D)obj : null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b08f1787e67e40bb81f8f1d80d459ffe
|
||||
timeCreated: 1765029703
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
#if !UNITY_6000_3_OR_NEWER
|
||||
using Module.NavigationTool.Editor.Toolbar;
|
||||
using UnityEditor;
|
||||
|
||||
|
|
@ -24,4 +25,5 @@ namespace Module.NavigationTool.Editor.Entities.Toolbar
|
|||
IsEnabled = EditorGUILayout.Toggle("Enable Entities", IsEnabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#if !UNITY_6000_3_OR_NEWER
|
||||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using Module.NavigationTool.Editor.Toolbar;
|
||||
|
|
@ -122,4 +123,5 @@ namespace Module.NavigationTool.Editor.Entities.Toolbar
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue