StartXunJian.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. [SerializeField] private Button NavigationingBtn;
  18. void Start()
  19. {
  20. ScreenshotBtn0.onClick.AddListener(ClickScreenshot);
  21. ScreenshotBtn1.onClick.AddListener(ClickScreenshot);
  22. ScreenshotBtn2.onClick.AddListener(ClickScreenshot);
  23. SaveBtn.onClick.AddListener(ClickSave);
  24. CancelBtn.onClick.AddListener(ClickCancel);
  25. NavigationingBtn.onClick.AddListener(Navigationing);
  26. }
  27. public void Next()
  28. {
  29. ShowXunJian.Instance.gotoWindow(ScenesManager.SceneType.ShowDH);
  30. }
  31. public void back()
  32. {
  33. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  34. }
  35. public void ShowDeviceInfo()
  36. {
  37. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowDevice);
  38. }
  39. #region 按钮点击
  40. Sprite sprite;
  41. private void ClickScreenshot()
  42. {
  43. XRRGBCamera.Instance.playCamera(1280, 720);
  44. ShowRawImage.texture = XRRGBCamera.Instance.CaptureImage;
  45. sprite = this.GetUtility<IRawImageForSpriteUtility>().SwitchSprite(ShowRawImage);
  46. ScreenshotImage.gameObject.SetActive(true);
  47. ScreenshotImage.sprite = sprite;
  48. //ScreenshotImage.sprite = Sprite.Create(XRRGBCamera.Instance.CaptureImage as Texture2D, new Rect(0, 0, XRRGBCamera.Instance.CaptureImage.width, XRRGBCamera.Instance.CaptureImage.height), new Vector2(0.5f, 0.5f));
  49. }
  50. private void ClickSave()
  51. {
  52. if(!ScreenshotImage.gameObject.activeSelf)
  53. return;
  54. arrayImage[arrayImageIndex].sprite = sprite;
  55. arrayImageIndex++;
  56. if(arrayImageIndex>=arrayImage.Length)
  57. arrayImageIndex = 0;
  58. ScreenshotImage.gameObject.SetActive(false);
  59. }
  60. private void ClickCancel()
  61. {
  62. ScreenshotImage.gameObject.SetActive(false);
  63. }
  64. public void Navigationing()
  65. {
  66. ScenesManager.Instance.showWindow(ScenesManager.SceneType.Navigationing);
  67. }
  68. #endregion
  69. }
  70. }