Unity填坑之Video与RenderTexure

Unity填坑之Video与RenderTexure

前言

需要在游戏里面增加视频,或者CG动画,需要使用到Unity自带的Video组件,同时由于要结合UI和其他图片进行组合展示,所以要用到RenderTexure,将视频流放入到一个Texture里面,再用RawImage指定这个RenderTexture。只播放一次时,没问题,但是当切换页面或者销毁预制之后,再播放时,会残留一部分视频在上一次播放停止的地方。

一、修复方式

修复方式就是每次打开预制,或者界面的时候,动态创建一个新的RenderTexture,然后设置Video的Target Texture为这个新的RenderTexture,设置RawImage的texture也为这个新的RenderTexture。示例代码如下(碰到问题的项目是LUA项目):

self._Player = self.viewModel.node_video.gameObject:GetComponent(typeof(UnityEngine.Video.VideoPlayer))
    self._Player.targetTexture =  UnityEngine.RenderTexture(ResLoad.get("Video/MyRenderTexture"):asset(typeof(UnityEngine.RenderTexture)))
    self.rawImage = self.viewModel.node_rawImage.gameObject:GetComponent("RawImage")
    self.rawImage.texture = self._Player.targetTexture

需要注意的是,为了自己设置的RenderTexture配置不变,可以在New RenderTexture时,传入之前设置好的,这样就能copy设置,不要代码设置了,即在UnityEngine.RenderTexture(//这里传入之前做好的RenderTexture)

上一篇:基础数据结构——简单选择排序和堆排序——笔记自用


下一篇:每次都能让人头大的 Shader -- 从一次简单的功能说起