@@ -240,13 +240,15 @@ private void OnContextClick(Vector2 mousePosition)
240240 }
241241 }
242242
243+ // The GenericDropdownMenu cannot display beyond the window it is in, and it has bugs in Unity 6000.0.
244+ // Therefore, we are using GenericMenu instead.
245+ // MEMO Unity BUG: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-77265
246+ // Custom contextual menu is broken or displayed wrongly when it is created with GenericDropdownMenu UIElement
247+
243248 private void ShowProjectAssetContextMenu ( Vector2 mousePosition )
244249 {
245250 Assert . IsTrue ( AssetHandle . Category == AssetCategory . ProjectAsset ) ;
246251
247- // MEMO Unity BUG: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-77265
248- // Custom contextual menu is broken or displayed wrongly when it is created with GenericDropdownMenu UIElement
249- #if UNITY_6000_0_OR_NEWER
250252 GenericMenu genericMenu = new GenericMenu ( ) ;
251253 if ( AssetHandle . Asset )
252254 {
@@ -264,34 +266,12 @@ private void ShowProjectAssetContextMenu(Vector2 mousePosition)
264266
265267 genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
266268 genericMenu . ShowAsContext ( ) ;
267- #else
268- GenericDropdownMenu menu = new GenericDropdownMenu ( ) ;
269- if ( AssetHandle . Asset )
270- {
271- menu . AddItem ( "Open" , false , AssetHandle . OpenAsset ) ;
272- menu . AddItem ( "Copy Path" , false , AssetHandle . CopyPathToSystemBuffer ) ;
273- menu . AddItem ( "Copy Guid" , false , AssetHandle . CopyGuidToSystemBuffer ) ;
274- menu . AddItem ( "Copy Type" , false , AssetHandle . CopyTypeFullNameToSystemBuffer ) ;
275- menu . AddItem ( "Copy Instance ID" , false , AssetHandle . CopyInstanceIdToSystemBuffer ) ;
276- menu . AddItem ( "Show in Folder" , false , AssetHandle . ShowInFolder ) ;
277- }
278- else
279- {
280- menu . AddItem ( "Copy Guid" , false , AssetHandle . CopyGuidToSystemBuffer ) ;
281- }
282-
283- menu . AddItem ( "Remove" , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
284- menu . DropDown ( new Rect ( mousePosition , Vector2 . zero ) , this , false ) ;
285- #endif
286269 }
287270
288271 private void ShowSceneObjectContextMenu ( Vector2 mousePosition )
289272 {
290273 Assert . IsTrue ( AssetHandle . Category == AssetCategory . SceneObject ) ;
291274
292- // MEMO Unity BUG: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-77265
293- // Custom contextual menu is broken or displayed wrongly when it is created with GenericDropdownMenu UIElement
294- #if UNITY_6000_0_OR_NEWER
295275 GenericMenu genericMenu = new GenericMenu ( ) ;
296276 if ( AssetHandle . Asset )
297277 {
@@ -307,34 +287,13 @@ private void ShowSceneObjectContextMenu(Vector2 mousePosition)
307287
308288 genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
309289 genericMenu . ShowAsContext ( ) ;
310- #else
311- GenericDropdownMenu menu = new GenericDropdownMenu ( ) ;
312- if ( AssetHandle . Asset )
313- {
314- menu . AddItem ( "Open" , false , AssetHandle . OpenAsset ) ;
315- menu . AddItem ( "Copy Hierarchy Path" , false , AssetHandle . CopyPathToSystemBuffer ) ;
316- menu . AddItem ( "Copy Type" , false , AssetHandle . CopyTypeFullNameToSystemBuffer ) ;
317- menu . AddItem ( "Copy Instance ID" , false , AssetHandle . CopyInstanceIdToSystemBuffer ) ;
318- }
319- else if ( AssetHandle . Scene )
320- {
321- menu . AddItem ( "Open in Scene" , false , AssetHandle . OpenAsset ) ;
322- }
323-
324- menu . AddItem ( "Remove" , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
325- menu . DropDown ( new Rect ( mousePosition , Vector2 . zero ) , this , false ) ;
326- #endif
327290 }
328291
329292 private void ShowExternalFileContextMenu ( Vector2 mousePosition )
330293 {
331294 Assert . IsTrue ( AssetHandle . Category == AssetCategory . ExternalFile ) ;
332295
333296 string path = AssetHandle . GetAssetPath ( ) ;
334-
335- // MEMO Unity BUG: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-77265
336- // Custom contextual menu is broken or displayed wrongly when it is created with GenericDropdownMenu UIElement
337- #if UNITY_6000_0_OR_NEWER
338297 GenericMenu genericMenu = new GenericMenu ( ) ;
339298 if ( File . Exists ( path ) || Directory . Exists ( path ) )
340299 {
@@ -349,43 +308,17 @@ private void ShowExternalFileContextMenu(Vector2 mousePosition)
349308
350309 genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
351310 genericMenu . ShowAsContext ( ) ;
352- #else
353- GenericDropdownMenu menu = new GenericDropdownMenu ( ) ;
354- if ( File . Exists ( path ) || Directory . Exists ( path ) )
355- {
356- menu . AddItem ( "Open" , false , AssetHandle . OpenAsset ) ;
357- menu . AddItem ( "Copy Path" , false , AssetHandle . CopyPathToSystemBuffer ) ;
358- menu . AddItem ( "Show in Folder" , false , AssetHandle . ShowInFolder ) ;
359- }
360- else
361- {
362- menu . AddItem ( "Copy Path" , false , AssetHandle . CopyPathToSystemBuffer ) ;
363- }
364-
365- menu . AddItem ( "Remove" , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
366- menu . DropDown ( new Rect ( mousePosition , Vector2 . zero ) , this , false ) ;
367- #endif
368311 }
369312
370313 private void ShowUrlContextMenu ( Vector2 mousePosition )
371314 {
372315 Assert . IsTrue ( AssetHandle . Category == AssetCategory . Url ) ;
373316
374- // MEMO Unity BUG: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-77265
375- // Custom contextual menu is broken or displayed wrongly when it is created with GenericDropdownMenu UIElement
376- #if UNITY_6000_0_OR_NEWER
377317 GenericMenu genericMenu = new GenericMenu ( ) ;
378318 genericMenu . AddItem ( new GUIContent ( "Open" ) , false , AssetHandle . OpenAsset ) ;
379319 genericMenu . AddItem ( new GUIContent ( "Copy URL" ) , false , AssetHandle . CopyPathToSystemBuffer ) ;
380320 genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
381321 genericMenu . ShowAsContext ( ) ;
382- #else
383- GenericDropdownMenu menu = new GenericDropdownMenu ( ) ;
384- menu . AddItem ( "Open" , false , AssetHandle . OpenAsset ) ;
385- menu . AddItem ( "Copy URL" , false , AssetHandle . CopyPathToSystemBuffer ) ;
386- menu . AddItem ( "Remove" , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
387- menu . DropDown ( new Rect ( mousePosition , Vector2 . zero ) , this , false ) ;
388- #endif
389322 }
390323
391324
0 commit comments