Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TilePaletteBrushInspector.cs 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using UnityEngine;
  2. namespace UnityEditor.Tilemaps
  3. {
  4. internal class TilePaletteBrushInspector
  5. {
  6. private Vector2 m_Scroll;
  7. private static class Styles
  8. {
  9. public static readonly GUIContent lockZPosition = EditorGUIUtility.TrTextContent("Lock Z Position", "Toggle editing of Z position");
  10. public static readonly GUIContent zPosition = EditorGUIUtility.TrTextContent("Z Position", "Set a Z position for the active Brush for painting");
  11. public static readonly GUIContent resetZPosition = EditorGUIUtility.TrTextContent("Reset", "Reset Z position for the active Brush");
  12. }
  13. public void OnGUI()
  14. {
  15. if (GridPaintingState.gridBrush == null)
  16. return;
  17. m_Scroll = GUILayout.BeginScrollView(m_Scroll);
  18. // Brush Inspector GUI
  19. EditorGUI.BeginChangeCheck();
  20. if (GridPaintingState.activeBrushEditor != null)
  21. GridPaintingState.activeBrushEditor.OnPaintInspectorGUI();
  22. else if (GridPaintingState.fallbackEditor != null)
  23. GridPaintingState.fallbackEditor.OnInspectorGUI();
  24. if (EditorGUI.EndChangeCheck())
  25. {
  26. GridPaintingState.ActiveGridBrushAssetChanged();
  27. }
  28. // Z Position Inspector
  29. var hasLastActiveGrid = GridPaintingState.lastActiveGrid != null;
  30. using (new EditorGUI.DisabledScope(!hasLastActiveGrid))
  31. {
  32. var lockZPosition = false;
  33. if (GridPaintingState.activeBrushEditor != null)
  34. {
  35. EditorGUI.BeginChangeCheck();
  36. lockZPosition = EditorGUILayout.Toggle(Styles.lockZPosition, !GridPaintingState.activeBrushEditor.canChangeZPosition);
  37. if (EditorGUI.EndChangeCheck())
  38. GridPaintingState.activeBrushEditor.canChangeZPosition = !lockZPosition;
  39. }
  40. using (new EditorGUI.DisabledScope(lockZPosition))
  41. {
  42. EditorGUILayout.BeginHorizontal();
  43. EditorGUI.BeginChangeCheck();
  44. var zPosition = EditorGUILayout.DelayedIntField(Styles.zPosition, hasLastActiveGrid ? GridPaintingState.lastActiveGrid.zPosition : 0);
  45. if (EditorGUI.EndChangeCheck())
  46. {
  47. GridPaintingState.gridBrush.ChangeZPosition(zPosition - GridPaintingState.lastActiveGrid.zPosition);
  48. GridPaintingState.lastActiveGrid.zPosition = zPosition;
  49. }
  50. if (GUILayout.Button(Styles.resetZPosition))
  51. {
  52. GridPaintingState.gridBrush.ResetZPosition();
  53. GridPaintingState.lastActiveGrid.ResetZPosition();
  54. }
  55. EditorGUILayout.EndHorizontal();
  56. }
  57. }
  58. GUILayout.EndScrollView();
  59. }
  60. }
  61. }