LoopScrollRectInspector.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. using UnityEditor;
  5. [CustomEditor(typeof(LoopScrollRect), true)]
  6. public class LoopScrollRectInspector : Editor
  7. {
  8. int index = 0;
  9. float speed = 1000, time = 1;
  10. public override void OnInspectorGUI ()
  11. {
  12. base.OnInspectorGUI();
  13. EditorGUILayout.Space();
  14. LoopScrollRect scroll = (LoopScrollRect)target;
  15. GUI.enabled = Application.isPlaying;
  16. EditorGUILayout.BeginHorizontal();
  17. if (GUILayout.Button("刷新"))
  18. {
  19. scroll.RefreshCells().NoContext();
  20. }
  21. /*if(GUILayout.Button("Clear"))
  22. {
  23. scroll.ClearCells();
  24. }
  25. if(GUILayout.Button("Refill"))
  26. {
  27. scroll.RefillCells();
  28. }
  29. if(GUILayout.Button("RefillFromEnd"))
  30. {
  31. scroll.RefillCellsFromEnd();
  32. }*/
  33. EditorGUILayout.EndHorizontal();
  34. EditorGUIUtility.labelWidth = 45;
  35. float w = (EditorGUIUtility.currentViewWidth - 100) / 2;
  36. index = EditorGUILayout.IntField(" 索引", index, GUILayout.Width(w));
  37. EditorGUILayout.BeginHorizontal();
  38. EditorGUIUtility.labelWidth = 60;
  39. speed = EditorGUILayout.FloatField(" 滚动速度", speed, GUILayout.Width(w));
  40. if(GUILayout.Button("滚动跳转", GUILayout.Width(130)))
  41. {
  42. if (scroll.totalCount <= 0)
  43. {
  44. return;
  45. }
  46. index = Mathf.Clamp(index, 0, scroll.totalCount - 1);
  47. scroll.ScrollToCell(index, speed).NoContext();
  48. }
  49. EditorGUILayout.EndHorizontal();
  50. EditorGUILayout.BeginHorizontal();
  51. EditorGUIUtility.labelWidth = 60;
  52. time = EditorGUILayout.FloatField(" 滚动时间", time, GUILayout.Width(w));
  53. if(GUILayout.Button("时间跳转", GUILayout.Width(130)))
  54. {
  55. if (scroll.totalCount <= 0)
  56. {
  57. return;
  58. }
  59. index = Mathf.Clamp(index, 0, scroll.totalCount - 1);
  60. scroll.ScrollToCellWithinTime(index, time).NoContext();
  61. }
  62. EditorGUILayout.EndHorizontal();
  63. }
  64. }
  65. #endif