VideoPlayerRenderTexture.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using UnityEngine;
  2. using UnityEngine.Video;
  3. namespace Unity.VRTemplate
  4. {
  5. /// <summary>
  6. /// Create a RenderTexture for rendering video to a target renderer.
  7. /// </summary>
  8. [RequireComponent(typeof(VideoPlayer))]
  9. public class VideoPlayerRenderTexture : MonoBehaviour
  10. {
  11. const string k_ShaderName = "Unlit/Texture";
  12. [SerializeField]
  13. [Tooltip("The target Renderer which will display the video.")]
  14. Renderer m_Renderer;
  15. [SerializeField]
  16. [Tooltip("The width of the RenderTexture which will be created.")]
  17. int m_RenderTextureWidth = 1920;
  18. [SerializeField]
  19. [Tooltip("The height of the RenderTexture which will be created.")]
  20. int m_RenderTextureHeight = 1080;
  21. [SerializeField]
  22. [Tooltip("The bit depth of the depth channel for the RenderTexture which will be created.")]
  23. int m_RenderTextureDepth;
  24. void Start()
  25. {
  26. var renderTexture = new RenderTexture(m_RenderTextureWidth, m_RenderTextureHeight, m_RenderTextureDepth);
  27. renderTexture.Create();
  28. var material = new Material(Shader.Find(k_ShaderName));
  29. material.mainTexture = renderTexture;
  30. GetComponent<VideoPlayer>().targetTexture = renderTexture;
  31. m_Renderer.material = material;
  32. }
  33. }
  34. }