StartXunJian.cs 3.4 KB

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