Modal.cs 899 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public static class Modal
  4. {
  5. private static BaseWindow currentModal;
  6. public static bool Visible
  7. {
  8. get => currentModal?.Visible ?? false;
  9. set
  10. {
  11. if (currentModal is null)
  12. return;
  13. currentModal.Visible = value;
  14. }
  15. }
  16. public static void Show(BaseWindow modalWindow)
  17. {
  18. if (currentModal is not null)
  19. Close();
  20. currentModal = modalWindow;
  21. Visible = true;
  22. }
  23. public static void Close()
  24. {
  25. Visible = false;
  26. currentModal = null;
  27. }
  28. public static void Draw()
  29. {
  30. var windowStyle = new GUIStyle(GUI.skin.box);
  31. currentModal.WindowRect =
  32. GUI.ModalWindow(currentModal.WindowID, currentModal.WindowRect, currentModal.GUIFunc, string.Empty, windowStyle);
  33. }
  34. }