StartXunJian.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using Blue;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. namespace GHZLangChao
  5. {
  6. public class StartXunJian : AbstractController
  7. {
  8. [SerializeField] private RawImage ShowRawImage; // 显示的视频画面
  9. [SerializeField] private Image[] arrayImage; // 截图显示的画面
  10. //[SerializeField] private Image ScreenshotImage; // 截图的画面
  11. private int arrayImageIndex = 0; // 截图显示时要显示在哪个Image上的下标
  12. [SerializeField] private Button ScreenshotBtn0;
  13. [SerializeField] private Button ScreenshotBtn1;
  14. [SerializeField] private Button ScreenshotBtn2;
  15. [SerializeField] private Button CancelBtn;
  16. [SerializeField] private Button SaveBtn;
  17. void Start()
  18. {
  19. ScreenshotBtn0.onClick.AddListener(ClickScreenshot);
  20. ScreenshotBtn1.onClick.AddListener(ClickScreenshot);
  21. ScreenshotBtn2.onClick.AddListener(ClickScreenshot);
  22. SaveBtn.onClick.AddListener(ClickSave);
  23. CancelBtn.onClick.AddListener(ClickCancel);
  24. }
  25. public void Next()
  26. {
  27. ShowXunJian.Instance.gotoWindow(ScenesManager.SceneType.ShowDH);
  28. }
  29. public void back()
  30. {
  31. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  32. }
  33. public void ShowDeviceInfo()
  34. {
  35. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowDevice);
  36. }
  37. #region 按钮点击
  38. [SerializeField] private Sprite mScreenshotSprite;
  39. private void ClickScreenshot()
  40. {
  41. if(ShowRawImage.gameObject.activeSelf) return;
  42. ShowRawImage.gameObject.SetActive(true);
  43. XRRGBCamera.Instance.playCamera(1280, 720);
  44. ShowRawImage.texture = XRRGBCamera.Instance.CaptureImage;
  45. }
  46. private void ClickSave()
  47. {
  48. var sprite = this.GetUtility<IRawImageForSpriteUtility>().SwitchSprite(ShowRawImage);
  49. //ScreenshotImage.gameObject.SetActive(true);
  50. //ScreenshotImage.sprite = sprite;
  51. arrayImage[arrayImageIndex].sprite = sprite;
  52. arrayImageIndex++;
  53. if(arrayImageIndex>=arrayImage.Length)
  54. arrayImageIndex = 0;
  55. //ScreenshotImage.gameObject.SetActive(false);
  56. }
  57. private void ClickCancel()
  58. {
  59. arrayImageIndex--;
  60. if(arrayImageIndex<0)
  61. arrayImageIndex = arrayImage.Length-1;
  62. arrayImage[arrayImageIndex].sprite = mScreenshotSprite;
  63. //ScreenshotImage.gameObject.SetActive(false);
  64. }
  65. #endregion
  66. }
  67. }