View.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using UnityEngine;
  2. namespace WS
  3. {
  4. ///<summary>视图</summary>
  5. public abstract class View : WSComponent
  6. {
  7. ///<summary>UIObj</summary>
  8. public GameObject UIGameObject;
  9. ///<summary>窗体类型</summary>
  10. public ViewGroup Group = ViewGroup.From;
  11. ///<summary>窗体显示位置类型</summary>
  12. public ViewShowModeType ShowModeType = ViewShowModeType.Screen;
  13. ///<summary>窗体状态</summary>
  14. public ViewShowType ShowType = ViewShowType.Close;
  15. ///<summary>动画</summary>
  16. public AnimationComponent AnimComponent;
  17. ///<summary>View对象被创建,UIGameObject被创建;还没有在Canvas渲染(作为数据、UI初始化操作)</summary>
  18. public abstract void LoadInit();
  19. ///<summary>设置显示位置</summary>
  20. public virtual void SetPosition() { }
  21. ///<summary>设置显示位置</summary>
  22. public virtual void SetPosition(Vector3 pos, Quaternion rot)
  23. {
  24. #if PLATFORM_PICO
  25. if (ShowModeType != ViewShowModeType.Screen)
  26. {
  27. UIGameObject.transform.parent.position = pos;
  28. UIGameObject.transform.parent.rotation = rot;
  29. return;
  30. }
  31. #endif
  32. UIGameObject.transform.localPosition = pos;
  33. UIGameObject.transform.localRotation = rot;
  34. }
  35. ///<summary>打开View(在Canvas上渲染、或者是UI动画播放完成)</summary>
  36. public virtual void OnOpen() { }
  37. public override void Dispose()
  38. {
  39. base.Dispose();
  40. UIGameObject = null;
  41. Group = ViewGroup.From;
  42. ShowType = ViewShowType.Close;
  43. ShowModeType = ViewShowModeType.Screen;
  44. }
  45. }
  46. }