StartXunJian.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. using Blue;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. namespace GHZLangChao
  5. {
  6. public class StartXunJian : AbstractController
  7. {
  8. public bool Test = false;
  9. [SerializeField] private RawImage ShowRawImage; // 显示的视频画面
  10. [SerializeField] private GameObject ShowRaw_go; // 显示的视频画面父物体
  11. [SerializeField] private Image[] arrayImage; // 截图显示的画面
  12. //[SerializeField] private Image ScreenshotImage; // 截图的画面
  13. private int arrayImageIndex = 0; // 截图显示时要显示在哪个Image上的下标
  14. [SerializeField] private Button[] ScreenshotBtnList;
  15. [SerializeField] private Button CancelBtn;
  16. [SerializeField] private Button SaveBtn;
  17. [SerializeField] private bool[] toggleBoolList;
  18. [SerializeField] private GameObject DefaultUI_go;
  19. void Start()
  20. {
  21. y = transform.position.y;
  22. foreach (Button btn in ScreenshotBtnList)
  23. {
  24. btn.onClick.AddListener(ClickScreenshot);
  25. }
  26. SaveBtn.onClick.AddListener(ClickSave);
  27. //CancelBtn.onClick.AddListener(ClickCancel);
  28. trans = new GameObject("trans").transform;
  29. trans.SetParent(OpenXRCamera.Instance.head);
  30. }
  31. private Transform trans;
  32. private float y;
  33. public float yyyyy = 1.3f;
  34. public Vector3 zzz = new Vector3(-0.2f, 1f, 0);
  35. [SerializeField] private Transform Xunjian => SceneIOCContainer.Instance.Pull("Xunjian") as Transform;
  36. private void Update()
  37. {
  38. if (Test) return;
  39. transform.position = Xunjian.position;
  40. transform.eulerAngles = Xunjian.eulerAngles;
  41. /*
  42. transform.LookAt(OpenXRCamera.Instance.head);
  43. transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y+180, 0);
  44. transform.position = OpenXRCamera.Instance.head.position + OpenXRCamera.Instance.head.forward *yyyyy + zzz;
  45. //transform.position = trans.position;
  46. transform.LookAt(OpenXRCamera.Instance.head);
  47. transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y + 180f, 0);
  48. Transform Player = OpenXRCamera.Instance.head;
  49. //Player.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
  50. transform.position = OpenXRCamera.Instance.head.position + Player.forward * 2.5f;
  51. transform.position = new Vector3(transform.position.x, OpenXRCamera.Instance.head.position.y, transform.position.z);
  52. */
  53. }
  54. public void Next()
  55. {
  56. ShowXunJian.Instance.gotoWindow(ScenesManager.SceneType.ShowDH);
  57. }
  58. public void back()
  59. {
  60. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  61. }
  62. public void ShowDeviceInfo()
  63. {
  64. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowDevice);
  65. }
  66. #region 按钮点击
  67. [SerializeField] private Sprite mScreenshotSprite;
  68. private void ClickScreenshot()
  69. {
  70. if (!ShowRaw_go.activeSelf)
  71. {
  72. ShowRaw_go.SetActive(true);
  73. XRRGBCamera.Instance.playCamera(1280, 720);
  74. ShowRawImage.texture = XRRGBCamera.Instance.CaptureImage;
  75. }
  76. }
  77. private void ClickSave()
  78. {
  79. var sprite = this.GetUtility<IRawImageForSpriteUtility>().SwitchSprite(ShowRawImage);
  80. //ScreenshotImage.gameObject.SetActive(true);
  81. //ScreenshotImage.sprite = sprite;
  82. arrayImage[arrayImageIndex].sprite = sprite;
  83. arrayImageIndex++;
  84. if (arrayImageIndex % 3 == 0)
  85. {
  86. arrayImageIndex -= 3;
  87. }
  88. }
  89. public void SetIndex(int index)
  90. {
  91. this.arrayImageIndex = index;
  92. }
  93. private void ClickCancel()
  94. {
  95. /*
  96. arrayImageIndex--;
  97. if (arrayImageIndex < 0)
  98. arrayImageIndex = arrayImage.Length - 1;
  99. arrayImage[arrayImageIndex].sprite = mScreenshotSprite;
  100. */
  101. }
  102. public void End()
  103. {
  104. foreach (bool isOn in toggleBoolList)
  105. {
  106. if (!isOn)
  107. {
  108. DefaultUI_go.SetActive(true);
  109. return;
  110. }
  111. }
  112. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  113. }
  114. public void SetToogleBool(int index)
  115. {
  116. toggleBoolList[index] = true;
  117. }
  118. #endregion
  119. }
  120. }