StartXunJian.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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 ScreenshotBtn0;
  15. [SerializeField] private Button ScreenshotBtn1;
  16. [SerializeField] private Button ScreenshotBtn2;
  17. [SerializeField] private Button CancelBtn;
  18. [SerializeField] private Button SaveBtn;
  19. [SerializeField] private bool[] toggleBoolList;
  20. [SerializeField] private GameObject DefaultUI_go;
  21. void Start()
  22. {
  23. y = transform.position.y;
  24. ScreenshotBtn0.onClick.AddListener(ClickScreenshot);
  25. ScreenshotBtn1.onClick.AddListener(ClickScreenshot);
  26. ScreenshotBtn2.onClick.AddListener(ClickScreenshot);
  27. SaveBtn.onClick.AddListener(ClickSave);
  28. //CancelBtn.onClick.AddListener(ClickCancel);
  29. }
  30. private float y;
  31. private void Update()
  32. {
  33. if (Test) return;
  34. transform.LookAt(OpenXRCamera.Instance.head);
  35. transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y + 180f, 0);
  36. Transform Player = OpenXRCamera.Instance.head;
  37. Player.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
  38. transform.position = OpenXRCamera.Instance.head.position + Player.forward * 1.8f;
  39. transform.position = new Vector3(transform.position.x, y, transform.position.z);
  40. }
  41. public void Next()
  42. {
  43. ShowXunJian.Instance.gotoWindow(ScenesManager.SceneType.ShowDH);
  44. }
  45. public void back()
  46. {
  47. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  48. }
  49. public void ShowDeviceInfo()
  50. {
  51. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowDevice);
  52. }
  53. #region 按钮点击
  54. [SerializeField] private Sprite mScreenshotSprite;
  55. private void ClickScreenshot()
  56. {
  57. if (!ShowRaw_go.activeSelf)
  58. {
  59. ShowRaw_go.SetActive(true);
  60. //ShowRawImage.gameObject.SetActive(true);
  61. XRRGBCamera.Instance.playCamera(1280, 720);
  62. ShowRawImage.texture = XRRGBCamera.Instance.CaptureImage;
  63. }
  64. }
  65. private void ClickSave()
  66. {
  67. var sprite = this.GetUtility<IRawImageForSpriteUtility>().SwitchSprite(ShowRawImage);
  68. //ScreenshotImage.gameObject.SetActive(true);
  69. //ScreenshotImage.sprite = sprite;
  70. arrayImage[arrayImageIndex].sprite = sprite;
  71. arrayImageIndex++;
  72. if (arrayImageIndex >= arrayImage.Length)
  73. arrayImageIndex = 0;
  74. //ScreenshotImage.gameObject.SetActive(false);
  75. }
  76. private void ClickCancel()
  77. {
  78. arrayImageIndex--;
  79. if (arrayImageIndex < 0)
  80. arrayImageIndex = arrayImage.Length - 1;
  81. arrayImage[arrayImageIndex].sprite = mScreenshotSprite;
  82. //ScreenshotImage.gameObject.SetActive(false);
  83. }
  84. public void End()
  85. {
  86. foreach(bool isOn in toggleBoolList)
  87. {
  88. if(!isOn)
  89. {
  90. DefaultUI_go.SetActive(true);
  91. return;
  92. }
  93. }
  94. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  95. }
  96. public void SetToogleBool(int index)
  97. {
  98. toggleBoolList[index] = true;
  99. }
  100. #endregion
  101. }
  102. }