12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /****************************************************************************
- * Copyright 2019 Nreal Techonology Limited. All rights reserved.
- *
- * This file is part of NRSDK.
- *
- * https://www.nreal.ai/
- *
- *****************************************************************************/
- using UnityEngine;
- using UnityEngine.UI;
- namespace NRKernal.NRExamples
- {
- /// <summary> A controller for handling camera captures. </summary>
- [HelpURL("https://developer.nreal.ai/develop/unity/rgb-camera")]
- public class CameraCaptureController : MonoBehaviour
- {
- /// <summary> The capture image. </summary>
- public RawImage CaptureImage;
- /// <summary> Number of frames. </summary>
- // public Text FrameCount;
- /// <summary> Gets or sets the RGB camera texture. </summary>
- /// <value> The RGB camera texture. </value>
- private NRRGBCamTexture RGBCamTexture { get; set; }
- void Start()
- {
- RGBCamTexture = new NRRGBCamTexture();
- CaptureImage.texture = RGBCamTexture.GetTexture();
- RGBCamTexture.Play();
- }
- /// <summary> Updates this object. </summary>
- void Update()
- {
- if (RGBCamTexture == null)
- {
- return;
- }
- // FrameCount.text = RGBCamTexture.FrameCount.ToString();
- }
- /// <summary> Plays this object. </summary>
- public void Play()
- {
- if (RGBCamTexture == null)
- {
- RGBCamTexture = new NRRGBCamTexture();
- CaptureImage.texture = RGBCamTexture.GetTexture();
- }
- RGBCamTexture.Play();
- // The origin texture will be destroyed after call "Stop",
- // Rebind the texture.
- CaptureImage.texture = RGBCamTexture.GetTexture();
- }
- /// <summary> Pauses this object. </summary>
- public void Pause()
- {
- RGBCamTexture?.Pause();
- }
- /// <summary> Stops this object. </summary>
- public void Stop()
- {
- RGBCamTexture?.Stop();
- RGBCamTexture = null;
- }
- /// <summary> Executes the 'destroy' action. </summary>
- void OnDestroy()
- {
- RGBCamTexture?.Stop();
- RGBCamTexture = null;
- }
- }
- }
|