Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

TilePaletteActiveTargetsDropdownMenu.cs 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.UIElements;
  4. namespace UnityEditor.Tilemaps
  5. {
  6. internal class TilePaletteActiveTargetsDropdownMenu : IGenericMenu
  7. {
  8. private const float k_ActiveTargetDropdownWidth = 190f;
  9. private GridPaintTargetsDropdown m_Dropdown;
  10. public TilePaletteActiveTargetsDropdownMenu()
  11. {
  12. int index = GridPaintingState.scenePaintTarget != null ? Array.IndexOf(GridPaintingState.validTargets, GridPaintingState.scenePaintTarget) : 0;
  13. var menuData = new GridPaintTargetsDropdown.MenuItemProvider();
  14. m_Dropdown = new GridPaintTargetsDropdown(menuData, index, null, SelectTarget, k_ActiveTargetDropdownWidth);
  15. }
  16. public void AddItem(string itemName, bool isChecked, System.Action action)
  17. {
  18. }
  19. public void AddItem(string itemName, bool isChecked, System.Action<object> action, object data)
  20. {
  21. }
  22. public void AddDisabledItem(string itemName, bool isChecked)
  23. {
  24. }
  25. public void AddSeparator(string path)
  26. {
  27. }
  28. public void DropDown(Rect position, VisualElement targetElement = null, bool anchored = false)
  29. {
  30. PopupWindow.Show(position, m_Dropdown);
  31. }
  32. private static void SelectTarget(int i, object o)
  33. {
  34. var obj = o as GameObject;
  35. var isPrefabInstance = TilePalettePrefabUtility.IsObjectPrefabInstance(obj);
  36. if (isPrefabInstance)
  37. {
  38. var editMode = (TilePaletteActiveTargetsProperties.PrefabEditModeSettings)EditorPrefs.GetInt(TilePaletteActiveTargetsProperties.targetEditModeEditorPref, 0);
  39. switch (editMode)
  40. {
  41. case TilePaletteActiveTargetsProperties.PrefabEditModeSettings.EnableDialog:
  42. {
  43. var option = EditorUtility.DisplayDialogComplex(TilePaletteActiveTargetsProperties.targetEditModeDialogTitle
  44. , TilePaletteActiveTargetsProperties.targetEditModeDialogMessage
  45. , TilePaletteActiveTargetsProperties.targetEditModeDialogYes
  46. , TilePaletteActiveTargetsProperties.targetEditModeDialogNo
  47. , TilePaletteActiveTargetsProperties.targetEditModeDialogChange);
  48. switch (option)
  49. {
  50. case 0:
  51. TilePalettePrefabUtility.GoToPrefabMode(obj);
  52. return;
  53. case 1:
  54. // Do nothing here for "No"
  55. break;
  56. case 2:
  57. var settingsWindow = SettingsWindow.Show(SettingsScope.User);
  58. settingsWindow.FilterProviders(TilePaletteActiveTargetsProperties.targetEditModeLookup);
  59. break;
  60. }
  61. }
  62. break;
  63. case TilePaletteActiveTargetsProperties.PrefabEditModeSettings.EditInPrefabMode:
  64. TilePalettePrefabUtility.GoToPrefabMode(obj);
  65. return;
  66. }
  67. }
  68. GridPaintingState.scenePaintTarget = obj;
  69. }
  70. }
  71. }