ScreenSpaceVideoExample.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using NRKernal.Experimental;
  2. using UnityEngine;
  3. using UnityEngine.Video;
  4. namespace NRKernal.Experimental.NRExamples
  5. {
  6. /// <summary>
  7. /// overlay ScreenSpace Videoplayer Example
  8. /// </summary>
  9. public class ScreenSpaceVideoExample : MonoBehaviour
  10. {
  11. [SerializeField]
  12. private NROverlay m_NROverlay;
  13. [SerializeField]
  14. private VideoPlayer m_Player;
  15. private RenderTexture m_RenderTexture;
  16. // Start is called before the first frame update
  17. void Start()
  18. {
  19. int width = (int)m_Player.width;
  20. int height = (int)m_Player.height;
  21. m_RenderTexture = new RenderTexture(800, 600, 0, RenderTextureFormat.ARGB32);
  22. m_NROverlay.isDynamic = true;
  23. m_Player.targetTexture = m_RenderTexture;
  24. m_Player.Prepare();
  25. m_Player.Play();
  26. m_Player.started += p => {
  27. m_NROverlay.MainTexture = m_RenderTexture;
  28. m_NROverlay.enabled = true;
  29. };
  30. m_NROverlay.onBufferChanged += p => {
  31. Graphics.Blit(m_Player.texture, p);
  32. };
  33. }
  34. }
  35. }