From c1e70445614b09ac1bcbc272c7653d5e3b901587 Mon Sep 17 00:00:00 2001 From: Anders Ejlersen Date: Sun, 17 Nov 2024 12:48:48 +0100 Subject: [PATCH] Added samples for burst and entities --- Editor/Toolbar/Tools/ToolPlayerPrefs.cs | 1 - Samples~/SamplesToolbarBurst/Icons.meta | 8 ++ .../Icons/tex_icon_burst_dark_disabled.png | Bin 0 -> 1541 bytes .../tex_icon_burst_dark_disabled.png.meta | 117 ++++++++++++++++ .../Icons/tex_icon_burst_dark_enabled.png | Bin 0 -> 1674 bytes .../tex_icon_burst_dark_enabled.png.meta | 117 ++++++++++++++++ .../Icons/tex_icon_burst_light_disabled.png | Bin 0 -> 1590 bytes .../tex_icon_burst_light_disabled.png.meta | 117 ++++++++++++++++ .../Icons/tex_icon_burst_light_enabled.png | Bin 0 -> 1804 bytes .../tex_icon_burst_light_enabled.png.meta | 117 ++++++++++++++++ .../Module.NavigationTool.Editor.Burst.asmdef | 18 +++ ...le.NavigationTool.Editor.Burst.asmdef.meta | 7 + Samples~/SamplesToolbarBurst/Settings.meta | 8 ++ .../Settings/ToolbarBurstSettings.cs | 27 ++++ .../Settings/ToolbarBurstSettings.cs.meta | 2 + Samples~/SamplesToolbarBurst/ToolBurst.cs | 98 ++++++++++++++ .../SamplesToolbarBurst/ToolBurst.cs.meta | 2 + ...dule.NavigationTool.Editor.Entities.asmdef | 18 +++ ...NavigationTool.Editor.Entities.asmdef.meta | 7 + Samples~/SamplesToolbarEntities/Settings.meta | 8 ++ .../Settings/ToolbarEntitiesSettings.cs | 27 ++++ .../Settings/ToolbarEntitiesSettings.cs.meta | 2 + .../SamplesToolbarEntities/ToolEntities.cs | 125 ++++++++++++++++++ .../ToolEntities.cs.meta | 2 + package.json | 15 ++- 25 files changed, 840 insertions(+), 3 deletions(-) create mode 100644 Samples~/SamplesToolbarBurst/Icons.meta create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png.meta create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_enabled.png create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_enabled.png.meta create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_disabled.png create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_disabled.png.meta create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_enabled.png create mode 100644 Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_enabled.png.meta create mode 100644 Samples~/SamplesToolbarBurst/Module.NavigationTool.Editor.Burst.asmdef create mode 100644 Samples~/SamplesToolbarBurst/Module.NavigationTool.Editor.Burst.asmdef.meta create mode 100644 Samples~/SamplesToolbarBurst/Settings.meta create mode 100644 Samples~/SamplesToolbarBurst/Settings/ToolbarBurstSettings.cs create mode 100644 Samples~/SamplesToolbarBurst/Settings/ToolbarBurstSettings.cs.meta create mode 100644 Samples~/SamplesToolbarBurst/ToolBurst.cs create mode 100644 Samples~/SamplesToolbarBurst/ToolBurst.cs.meta create mode 100644 Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef create mode 100644 Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef.meta create mode 100644 Samples~/SamplesToolbarEntities/Settings.meta create mode 100644 Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs create mode 100644 Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs.meta create mode 100644 Samples~/SamplesToolbarEntities/ToolEntities.cs create mode 100644 Samples~/SamplesToolbarEntities/ToolEntities.cs.meta diff --git a/Editor/Toolbar/Tools/ToolPlayerPrefs.cs b/Editor/Toolbar/Tools/ToolPlayerPrefs.cs index 152fae3..5129ccc 100644 --- a/Editor/Toolbar/Tools/ToolPlayerPrefs.cs +++ b/Editor/Toolbar/Tools/ToolPlayerPrefs.cs @@ -1,7 +1,6 @@ using JetBrains.Annotations; using UnityEditor; using UnityEngine; -using UTools = UnityEditor.Tools; namespace Module.NavigationTool.Editor.Toolbar { diff --git a/Samples~/SamplesToolbarBurst/Icons.meta b/Samples~/SamplesToolbarBurst/Icons.meta new file mode 100644 index 0000000..2461a5f --- /dev/null +++ b/Samples~/SamplesToolbarBurst/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e31d016aae6230944a6f391781dec340 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0348bf7b11feb6f498b5e028b378b72d87f78431 GIT binary patch literal 1541 zcmY*ZeLT~79RF=IsYA&iZMYVx#84q0bRyRs13DihhOEH*3J@>oiz zkSuvNT{KxbMRZ3+Ugl}5B+hxdpX&9x*L_~E_xJt&Jb(WBp7-V(~n-_o;VrsBYl#h=!pbk24011Hu5K!#_ zVf0O}-C_lSeThRsje$S`9gssn#Bfx;#A%>jvsZ}_U>x=z|8FG#CU|Oq3Rs7>vqwXU zzs_9S2QU6QCkNDP1_h@=zf=Y|IfCk27Y2=9%dW4#9bBb@1rJlH^YO$71$$NGk!Yc0 zy~oiT1Xd(JhXAXRr)G(PLC8SN=r1{_`?Na)=PFbTAz=gV?R8rxeG4vj5=80-{sh|1 z%m%+ldNWSnnO%wSZ-{A>UMkTIwGwR=WeY#fx5mHeY7+M6<-K$ZRXWLEvsUDVEMtsXe6q`yKlG`i9a`0aki9 zX&<}0eU~g2)!#ZhKSdQiL)c+8J_@+a&qNSepF*L?xPHk6+1b#P3c0&@-7#c$f*n!o zT-U7az|~9(LpnFCZN(xkP3z34PCg2n4Y+vP6r`<=$C$)X+~#U#OFGXpVt6M|lhTgTc@n8J+JdDZ5KmpNXEJNQZj{`m(aJ3~w}gv1=&1Y7{KU2;IiUrb2ca zF@h;y`Kz+Bk~(^F<4k*dI}|78?~nludz9`_-oBGv<@)Tu?Mllkkiw!OH}?Z3neE5C z-&_oJ9SxjbNsnv`OxHcN`$2f`g@`t7(R5L4Y;20TQEErBW|rWe;btBzRDYIT{~^*{ zvH-tVJQXQ9J3BTu7TDa}Y=O?75ZU%*rIQ*lz$x>A=CbZVt?{kY1JR~#RFdjA=Lntd zmMgQFUtge6om@3)z${$6^J@fDGVo__uUMkr#BMlLYd3g*86mbrr3CNMbrKry%-C>O z809+54SSv~tS;fA89MbN{$|wv-!dWOUGStU_Ny6sxY!P;l$_t&u?aheY~jRkWGXvW z9<5rMHG3>}U9t9mHnQ6$`gdMUNzwSExd*SLYtLNUbulc8{~Uj0gtvh6bVQ~N>WyuW zE|kMh=W>?`sG^bgO+r7_r5iMl& zPC&1E-#y=75dwiWdKbt3d_q21{b4j*N{(b^5VKtNunr_jU9VcJ8N>bw7f<@CGSI}N z{P9Hdq;SXQ$y%I?yl{TEGAKBk@@esK9NyHziV**f>v8(blxAIHBa6)37zZKf7rxeL z<#e!7pSg$Lt+#PsLb%bA`2F@mS=I9LGTZ^C^Du`4cZ+-D$@ zOkzg$#(Nqe*uGpjtjxG@GsC-}aB7BYojaGWto+0-eKCQ_FWaIi6$E{r&zTU&T-!tk z{Hp>Oso$%6{$aBBvl~7((Dv7$zH=Hf LeLX7)5oiAe<|>o9 literal 0 HcmV?d00001 diff --git a/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png.meta b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png.meta new file mode 100644 index 0000000..cf4c855 --- /dev/null +++ b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_disabled.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 60fb1efbdd5470143ad7d05f4789d734 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_enabled.png b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_dark_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca2cd8cdab80704cb4bf8b4f1861b79eaa68e3e GIT binary patch literal 1674 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 EFNnIOWdHyG literal 0 HcmV?d00001 diff --git a/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_disabled.png.meta b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_disabled.png.meta new file mode 100644 index 0000000..a73cbec --- /dev/null +++ b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_disabled.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 919dde4918f9c2040ae36996a59f7fda +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_enabled.png b/Samples~/SamplesToolbarBurst/Icons/tex_icon_burst_light_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3c7840d4086d1850b30c8f5f980ef4b2d1b763b8 GIT binary patch literal 1804 zcmY*aX*iqd8vcS-ax zWt*C*Dy2%xSgUeq+EGUtBheXYsdYY`IX}*GUH5z6&-%WB2jKpw)~}!=6K3yj4*;z^rJZ0X=qpfNd}#o1sQ&pu?o3NCQBD93TVcF<4U! zr24O!2ldeEzvdKy`oN^XDNF+cK6B5?M?^`?z7mpamwa&!lwk!A;M4glj1{M?HiYFPtQ%4xV&9?c0d#Kypb`lC=@Y?jy`B^D_c*RyLUVGR$2!ldo%V{5CQ=EQ4(vs-=hxUu2HQQDpLN?J-! z$9~4_?5yl8Wf-k!<8~~6Wo2bC-R>8d@J6A_m4Gv9mP_GBS#&q+Co4YF)6?3Sl-62{ zos@n5f^!|K5{YDkGY);mZxHE@C-H|=QPRD!y-VxS*?V@#Y%1|99NqMfoB1l$K^cz& zcPlE6Lw65_q})AM*x=8(c%=R{v#F`6i%Kn3DD|7TVt8~L=EsdH*3DhedMG^N6CsNcAmhhjrLS61t)vj>i)YO#9>fN#s z7LF_^9rk>t?L|yNRgfQ=__Zm>Ayq9H-d}T1FfUzsefX@>F7jc|@=dpxlc|lDgTpnF z3-$`RT<&?4(7&bXT1IIHro4rhe#0WX{_P8W!bD0|D(98u*|XlRpSZs3zC%Hls$rAf zBZ_ueQJ65SwoZOvXOxu2rU~RJPsf>pJC*0QT%>E#_We(~Z`z}zKE!J1z)RiN{jYj> zcwjDAHar?A)R43`@iYV(;?1F*Dqcy6te?lcGMOad3kxijo(J2Q0&WAc-GcL z#9{)`mdTA>SYBRMA3lBemSG3RW$<|#B*RrC5R`qIOalnmM5s{Sea<3FnCRnUxNG=f znq%x`EM*ogXdHc4Rtyo6VgJk$D>^%5+PoFva5z)GSZzz2zoVpQ?5JKJ5ohFJ{=TTM zug_KTA3hbByI1&gYU6bQtWKx%kyqxb{|RYJ1Xa!KTkJ8t2z`Qju(Dag)a`DBka)HI zGR4{_>0YB|zA%$>|6?~}?mAwYAm{~7L6~f zSgyl#`HJwH@%gcDxlMU-*R9!mP1tJ1$7F9d@w~r??yiR(uVt;Xb|MzrJKs9Z#^1Y@ zcBA8x?RKo0t!)r5NBkL^N%og^^$|t=u7Zg$l0Ab^qEzqZYR=mD8IS<4cx$q!}hvB(yul zhV+O#Z=)C0#;+BTdqYak^^!F-)$0N+quD{}7Y&r%j6LLR#F?gofk>sGe{VA8+GJ@` z)krsDdXvQoT!t+5O}19h<8MSFQMXKsbUFI2*#$I-2Kb!^s$R{^#JqpU@CZSP^>elZ ze$1puH=8RL9&UM=ra*^};WgVh7PE~u8L8Qlw%oA+8rEC6*rGCRrN*-tF6e1|EJrUY z5t?hgidSjfGCE`1!9PuX^UZc^ZEbCqQkb=YxF+W`Vy^GIN37wi1utXzc{6f(5GDPF zG9H#-zuyI||A>4cx`2V-vJcYvYO<^IU&_g5mZD~HQnE3h+_%=?I0N^s;j=f=5?2s2 z=Rdr6wwIBn$3N}q)=mm*; zcwf-rKT;~V4OZdF%;(OY^{_N+FU23+&8d6nL8`SgRe5*Qq%8+I$G%@KWl)z&bkI{? z(S1og^`vqw{qrxJ@%FqPLA!Ufob%wNCt95<+?qgK^06V3ErVuGqCw+x>OL9qZM=K# zXfI`zIF%`Gu}FC-HAx&l)O6B2a37W+T%bN5<(ezWSwV5CdS8?F;Smx0fP>&h4TCmz P@Vx "Burst"; + + private const string PREF_PREFS_ENABLED = "ToolbarSettings.IsBurstsEnabled"; + + public static bool IsEnabled + { + get => EditorPrefs.GetBool(PREF_PREFS_ENABLED, false); + set => EditorPrefs.SetBool(PREF_PREFS_ENABLED, value); + } + + public void Initialize() + { + } + + public void Draw() + { + IsEnabled = EditorGUILayout.Toggle("Enable Burst", IsEnabled); + } + } +} \ No newline at end of file diff --git a/Samples~/SamplesToolbarBurst/Settings/ToolbarBurstSettings.cs.meta b/Samples~/SamplesToolbarBurst/Settings/ToolbarBurstSettings.cs.meta new file mode 100644 index 0000000..eaa1e33 --- /dev/null +++ b/Samples~/SamplesToolbarBurst/Settings/ToolbarBurstSettings.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1b064274e467ceb4c876833f7fef3ec2 diff --git a/Samples~/SamplesToolbarBurst/ToolBurst.cs b/Samples~/SamplesToolbarBurst/ToolBurst.cs new file mode 100644 index 0000000..4e00285 --- /dev/null +++ b/Samples~/SamplesToolbarBurst/ToolBurst.cs @@ -0,0 +1,98 @@ +using System; +using System.Reflection; +using JetBrains.Annotations; +using Module.NavigationTool.Editor.Toolbar; +using UnityEditor; +using UnityEditor.Profiling; +using UnityEngine; + +namespace Module.NavigationTool.Editor.Burst.Toolbar +{ + [UsedImplicitly] + internal sealed class ToolBurst : AbstractToolbarDrawer + { + public override bool Visible => ToolbarBurstSettings.IsEnabled; + public override bool Enabled => true; + public override EToolbarPlacement Placement => EToolbarPlacement.Left; + public override int Priority => (int)EToolbarPriority.Low; + + protected override void Draw(Rect rect) + { + Styles.Initialize(); + + if (GUI.Button(rect, IsBurstEnabled() ? Styles.ICON_ENABLED : Styles.ICON_DISABLED, styles.button)) + EditorApplication.ExecuteMenuItem("Jobs/Burst/Enable Compilation"); + + GUI.Label(rect, Styles.LABEL, styles.labelCenter); + } + + public override float CalculateWidth() + { + return 24.0f; + } + + private 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; + } + + PropertyInfo 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 + { + public static readonly GUIContent LABEL = new GUIContent(string.Empty, "Enable/disable burst compiler"); + + public static GUIContent ICON_ENABLED; + public static GUIContent ICON_DISABLED; + + private static bool IS_INITIALIZED; + private const string EditorIconFileNameLight = "tex_icon_burst_light"; + private const string EditorIconFileNameDark = "tex_icon_burst_dark"; + + public static void Initialize() + { + if (IS_INITIALIZED) + return; + + ICON_ENABLED = new GUIContent(LoadIcon("_enabled")); + ICON_DISABLED = new GUIContent(LoadIcon("_disabled")); + IS_INITIALIZED = true; + } + + private static Texture2D LoadIcon(string postfix) + { + string iconPrefix = EditorGUIUtility.isProSkin ? EditorIconFileNameDark : EditorIconFileNameLight; + string filename = $"{iconPrefix}{postfix}"; + string[] guids = AssetDatabase.FindAssets("t:texture " + filename); + + for (int i = 0; i < guids.Length; i++) + { + string path = AssetDatabase.GUIDToAssetPath(guids[i]); + Texture2D tex = AssetDatabase.LoadAssetAtPath(path); + + if (tex != null) + return tex; + } + + return null; + } + } + } +} \ No newline at end of file diff --git a/Samples~/SamplesToolbarBurst/ToolBurst.cs.meta b/Samples~/SamplesToolbarBurst/ToolBurst.cs.meta new file mode 100644 index 0000000..de478a3 --- /dev/null +++ b/Samples~/SamplesToolbarBurst/ToolBurst.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 12286d5e95c428b4894a8d88b86b8080 diff --git a/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef b/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef new file mode 100644 index 0000000..e5f3e28 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Module.NavigationTool.Editor.Entities", + "rootNamespace": "Module.NavigationTool.Editor.Entities", + "references": [ + "GUID:8339b3ce77cb32f489776d81010ad36c" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": false, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef.meta b/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef.meta new file mode 100644 index 0000000..6150269 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/Module.NavigationTool.Editor.Entities.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7f005006296b7aa41b589cd21e890d5c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/SamplesToolbarEntities/Settings.meta b/Samples~/SamplesToolbarEntities/Settings.meta new file mode 100644 index 0000000..112cf08 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b746b07b87c4e4340aed5ad6a7bc3b64 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs b/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs new file mode 100644 index 0000000..414bfc3 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs @@ -0,0 +1,27 @@ +using Module.NavigationTool.Editor.Toolbar; +using UnityEditor; + +namespace Module.NavigationTool.Editor.Entities.Toolbar +{ + internal sealed class ToolbarEntitiesSettings : IToolbarSettings + { + public string Title => "Entities"; + + private const string PREF_PREFS_ENABLED = "ToolbarSettings.IsEntitiesEnabled"; + + public static bool IsEnabled + { + get => EditorPrefs.GetBool(PREF_PREFS_ENABLED, false); + set => EditorPrefs.SetBool(PREF_PREFS_ENABLED, value); + } + + public void Initialize() + { + } + + public void Draw() + { + IsEnabled = EditorGUILayout.Toggle("Enable Entities", IsEnabled); + } + } +} \ No newline at end of file diff --git a/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs.meta b/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs.meta new file mode 100644 index 0000000..45c05bd --- /dev/null +++ b/Samples~/SamplesToolbarEntities/Settings/ToolbarEntitiesSettings.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1077d6399eff29247a55c20578a2df1c \ No newline at end of file diff --git a/Samples~/SamplesToolbarEntities/ToolEntities.cs b/Samples~/SamplesToolbarEntities/ToolEntities.cs new file mode 100644 index 0000000..0e65c32 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/ToolEntities.cs @@ -0,0 +1,125 @@ +using System; +using JetBrains.Annotations; +using Module.NavigationTool.Editor.Toolbar; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace Module.NavigationTool.Editor.Entities.Toolbar +{ + [UsedImplicitly] + internal sealed class ToolEntities : AbstractToolbarDrawer + { + public override bool Visible => ToolbarEntitiesSettings.IsEnabled; + public override bool Enabled => true; + public override EToolbarPlacement Placement => EToolbarPlacement.Left; + public override int Priority => (int)EToolbarPriority.Low; + + protected override void Draw(Rect rect) + { + Styles.Initialize(); + + Rect rect0 = new Rect(rect.x, rect.y, 24f, rect.height); + Rect rect1 = new Rect(rect0.xMax, rect.y, 24f, rect.height); + Rect rect2 = new Rect(rect1.xMax, rect.y, 24f, rect.height); + Rect rect3 = new Rect(rect2.xMax, rect.y, 24f, rect.height); + Rect rect4 = new Rect(rect3.xMax, rect.y, 24f, rect.height); + + if (GUI.Button(rect0, Styles.ICON_HIERARCHY, styles.button)) + ToggleWindow("HierarchyWindow"); + if (GUI.Button(rect1, Styles.ICON_COMPONENTS, styles.button)) + ToggleWindow("ComponentsWindow"); + if (GUI.Button(rect2, Styles.ICON_SYSTEMS, styles.button)) + ToggleWindow("SystemScheduleWindow"); + if (GUI.Button(rect3, Styles.ICON_ARCHETYPES, styles.button)) + ToggleWindow("ArchetypesWindow"); + if (GUI.Button(rect4, Styles.ICON_JOURNALING, styles.button)) + ToggleWindow("EntitiesJournalingWindow"); + + GUI.Label(rect0, Styles.LABEL_HIERARCHY, styles.labelCenter); + GUI.Label(rect1, Styles.LABEL_COMPONENTS, styles.labelCenter); + GUI.Label(rect2, Styles.LABEL_SYSTEMS, styles.labelCenter); + GUI.Label(rect3, Styles.LABEL_ARCHETYPES, styles.labelCenter); + GUI.Label(rect4, Styles.LABEL_JOURNALING, styles.labelCenter); + } + + public override float CalculateWidth() + { + return 120.0f; + } + + private void ToggleWindow(string typeName) + { + string fullname = "Unity.Entities.Editor." + typeName + ", Unity.Entities.Editor"; + Type type = Type.GetType(fullname, false, true); + + if (type != null) + { + Object[] all = Resources.FindObjectsOfTypeAll(type); + + if (all.Length != 0) + { + for (int 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 readonly GUIContent LABEL_HIERARCHY = new GUIContent(string.Empty, "Show/Hide entities hierarchy window"); + public static readonly GUIContent LABEL_COMPONENTS = new GUIContent(string.Empty, "Show/Hide entities components window"); + public static readonly GUIContent LABEL_SYSTEMS = new GUIContent(string.Empty, "Show/Hide entities systems window"); + public static readonly GUIContent LABEL_ARCHETYPES = new GUIContent(string.Empty, "Show/Hide entities archetypes window"); + public static readonly GUIContent LABEL_JOURNALING = new GUIContent(string.Empty, "Show/Hide entities journaling window"); + + public static GUIContent ICON_HIERARCHY; + public static GUIContent ICON_COMPONENTS; + public static GUIContent ICON_SYSTEMS; + public static GUIContent ICON_ARCHETYPES; + public static GUIContent ICON_JOURNALING; + + private static bool IS_INITIALIZED; + + 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 (IS_INITIALIZED) + return; + + ICON_HIERARCHY = new GUIContent(LoadIcon("EntityGroup/EntityGroup")); + ICON_COMPONENTS = new GUIContent(LoadIcon("Component/Component")); + ICON_SYSTEMS = new GUIContent(LoadIcon("System/System")); + ICON_ARCHETYPES = new GUIContent(LoadIcon("Archetype/Archetype")); + ICON_JOURNALING = new GUIContent(LoadIcon("Journaling/Journaling")); + + IS_INITIALIZED = true; + } + + private static Texture2D LoadIcon(string name) + { + string iconsDirectory = EditorIconsLightDirectory; + + if (EditorGUIUtility.isProSkin) + iconsDirectory = EditorIconsDarkDirectory; + + Object obj = AssetDatabase.LoadAssetAtPath(iconsDirectory + "/" + name + ".png", typeof(Texture2D)); + return obj != null ? (Texture2D)obj : null; + } + } + } +} \ No newline at end of file diff --git a/Samples~/SamplesToolbarEntities/ToolEntities.cs.meta b/Samples~/SamplesToolbarEntities/ToolEntities.cs.meta new file mode 100644 index 0000000..7e7f5a3 --- /dev/null +++ b/Samples~/SamplesToolbarEntities/ToolEntities.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 460de731a77f02347b6ae7d35050a5f1 \ No newline at end of file diff --git a/package.json b/package.json index 085c27a..bbda93e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.navigationtool", - "version": "1.9.5", + "version": "1.10.0", "displayName": "Module.NavigationTool", "description": "Support for navigation tools, like favorites, history and toolbars", "unity": "2019.2", @@ -19,5 +19,16 @@ "email": "anders@ejlersen.info", "url": "https://www.ejlersen.info" }, - "_fingerprint": "06420f1ad404ea844ae5d2f3a0a3f841703632f5" + "samples": [ + { + "displayName": "Entities Toolbar Sample", + "description": "Displays a list of five buttons for show/hiding hierarchy, components, systems, archetypes and journaling window", + "path": "Samples~/SamplesToolbarEntities" + }, + { + "displayName": "Burst Toolbar Sample", + "description": "Displays a enable/disable burst compiler button", + "path": "Samples~/SamplesToolbarBurst" + } + ] }