Loading.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using UnityEngine.UI;
  2. namespace WS
  3. {
  4. [ObjectSystem]
  5. public class LoadingControllerUpdateSystem : UpdateSystem<LoadingController>
  6. {
  7. public override void Update(LoadingController self)
  8. {
  9. self.Update();
  10. }
  11. }
  12. ///<summary>切换场景Load控制器</summary>
  13. public class LoadingController : Controller<LoadingView, LoadingModel>
  14. {
  15. ///<summary>切换场景组件</summary>
  16. private SceneChange ThisSceneChange;
  17. ///<summary>绑定View&Model</summary>
  18. protected override void BindingViewModel()
  19. {
  20. _Model.Bind(_View.Describe_Text, _Model.Describe);
  21. _Model.Bind(_View.Progress_Slider, _Model.Progress);
  22. _Model.Bind(_View.Progress_Text, _Model.ProgressText);
  23. }
  24. ///<summary>打开视图</summary>
  25. ///<param name="change">切换场景组件</param>
  26. ///<param name="describe">描述</param>
  27. public void OpenView(ViewShowModeType viewShowMode, SceneChange change, string describe)
  28. {
  29. OpenView(viewShowMode);
  30. ThisSceneChange = change;
  31. _Model.Describe.Value = describe;
  32. }
  33. public void Update()
  34. {
  35. if (ThisSceneChange != null)
  36. {
  37. _Model.Progress.Value = ThisSceneChange.Process;
  38. _Model.ProgressText.Value = (ThisSceneChange.Process * 100).ToString("f0") + "%";
  39. }
  40. }
  41. public override void Dispose()
  42. {
  43. base.Dispose();
  44. ThisSceneChange = null;
  45. }
  46. }
  47. ///<summary>切换场景Load视图</summary>
  48. public class LoadingView : View
  49. {
  50. ///<summary>描述文本</summary>
  51. public Text Describe_Text;
  52. ///<summary>进度文本</summary>
  53. public Text Progress_Text;
  54. ///<summary>进度条</summary>
  55. public Slider Progress_Slider;
  56. public override void LoadInit()
  57. {
  58. Group = ViewGroup.Loading;
  59. ReferenceCollector rc = UIGameObject.GetComponent<ReferenceCollector>();
  60. Describe_Text = rc.GetComponent<Text>("Describe_Text");
  61. Progress_Text = rc.GetComponent<Text>("Progress_Text");
  62. Progress_Slider = rc.GetComponent<Slider>("Progress_Slider");
  63. }
  64. }
  65. ///<summary>切换场景Load进度Model</summary>
  66. public class LoadingModel : Model
  67. {
  68. ///<summary>描述</summary>
  69. public BindableProperty<string> Describe;
  70. ///<summary>进度</summary>
  71. public BindableProperty<float> Progress;
  72. ///<summary>进度文本</summary>
  73. public BindableProperty<string> ProgressText;
  74. public override void InitProperty()
  75. {
  76. Describe = CreateProperty<string>();
  77. Progress = CreateProperty<float>();
  78. ProgressText = CreateProperty<string>();
  79. }
  80. }
  81. }