@@ -240,13 +240,15 @@ private void OnContextClick(Vector2 mousePosition)
240
240
}
241
241
}
242
242
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
+
243
248
private void ShowProjectAssetContextMenu ( Vector2 mousePosition )
244
249
{
245
250
Assert . IsTrue ( AssetHandle . Category == AssetCategory . ProjectAsset ) ;
246
251
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
250
252
GenericMenu genericMenu = new GenericMenu ( ) ;
251
253
if ( AssetHandle . Asset )
252
254
{
@@ -264,34 +266,12 @@ private void ShowProjectAssetContextMenu(Vector2 mousePosition)
264
266
265
267
genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
266
268
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
286
269
}
287
270
288
271
private void ShowSceneObjectContextMenu ( Vector2 mousePosition )
289
272
{
290
273
Assert . IsTrue ( AssetHandle . Category == AssetCategory . SceneObject ) ;
291
274
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
295
275
GenericMenu genericMenu = new GenericMenu ( ) ;
296
276
if ( AssetHandle . Asset )
297
277
{
@@ -307,34 +287,13 @@ private void ShowSceneObjectContextMenu(Vector2 mousePosition)
307
287
308
288
genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
309
289
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
327
290
}
328
291
329
292
private void ShowExternalFileContextMenu ( Vector2 mousePosition )
330
293
{
331
294
Assert . IsTrue ( AssetHandle . Category == AssetCategory . ExternalFile ) ;
332
295
333
296
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
338
297
GenericMenu genericMenu = new GenericMenu ( ) ;
339
298
if ( File . Exists ( path ) || Directory . Exists ( path ) )
340
299
{
@@ -349,43 +308,17 @@ private void ShowExternalFileContextMenu(Vector2 mousePosition)
349
308
350
309
genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
351
310
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
368
311
}
369
312
370
313
private void ShowUrlContextMenu ( Vector2 mousePosition )
371
314
{
372
315
Assert . IsTrue ( AssetHandle . Category == AssetCategory . Url ) ;
373
316
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
377
317
GenericMenu genericMenu = new GenericMenu ( ) ;
378
318
genericMenu . AddItem ( new GUIContent ( "Open" ) , false , AssetHandle . OpenAsset ) ;
379
319
genericMenu . AddItem ( new GUIContent ( "Copy URL" ) , false , AssetHandle . CopyPathToSystemBuffer ) ;
380
320
genericMenu . AddItem ( new GUIContent ( "Remove" ) , false , ( ) => OnWantsToRemoveAssetItem ? . Invoke ( AssetHandle ) ) ;
381
321
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
389
322
}
390
323
391
324
0 commit comments