BackgroundSelectorPane.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using UnityEngine;
  2. namespace COM3D2.MeidoPhotoStudio.Plugin
  3. {
  4. class BackgroundSelectorPane : BasePane
  5. {
  6. private EnvironmentManager environmentManager;
  7. private Dropdown bgDropdown;
  8. private Button prevBGButton;
  9. private Button nextBGButton;
  10. public BackgroundSelectorPane(EnvironmentManager environmentManager)
  11. {
  12. this.environmentManager = environmentManager;
  13. int theaterIndex = Constants.BGList.FindIndex(bg => bg == "Theater");
  14. this.bgDropdown = new Dropdown(Translation.GetList("bgDropdown", Constants.BGList), theaterIndex);
  15. this.bgDropdown.SelectionChange += (s, a) =>
  16. {
  17. string bg = Constants.BGList[this.bgDropdown.SelectedItemIndex];
  18. environmentManager.ChangeBackground(bg);
  19. };
  20. this.prevBGButton = new Button("<");
  21. this.prevBGButton.ControlEvent += (s, a) => this.bgDropdown.Step(-1);
  22. this.nextBGButton = new Button(">");
  23. this.nextBGButton.ControlEvent += (s, a) => this.bgDropdown.Step(1);
  24. }
  25. public override void Draw(params GUILayoutOption[] layoutOptions)
  26. {
  27. float arrowButtonSize = 30;
  28. GUILayoutOption[] arrowLayoutOptions = {
  29. GUILayout.Width(arrowButtonSize),
  30. GUILayout.Height(arrowButtonSize)
  31. };
  32. float dropdownButtonHeight = arrowButtonSize;
  33. float dropdownButtonWidth = 153f;
  34. GUILayoutOption[] dropdownLayoutOptions = new GUILayoutOption[] {
  35. GUILayout.Height(dropdownButtonHeight),
  36. GUILayout.Width(dropdownButtonWidth)
  37. };
  38. GUILayout.BeginHorizontal();
  39. this.prevBGButton.Draw(arrowLayoutOptions);
  40. this.bgDropdown.Draw(dropdownLayoutOptions);
  41. this.nextBGButton.Draw(arrowLayoutOptions);
  42. GUILayout.EndHorizontal();
  43. }
  44. }
  45. }