Samples: Updated to 2.0.0

This commit is contained in:
Anders Ejlersen 2025-12-06 15:25:17 +01:00
parent 55d0393cf8
commit 2bcd3c63af
8 changed files with 208 additions and 4 deletions

View file

@ -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

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b08f1787e67e40bb81f8f1d80d459ffe
timeCreated: 1765029703

View file

@ -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

View file

@ -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