其他分享
首页 > 其他分享> > Unity填坑之Video与RenderTexure

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)

标签:UnityEngine,RenderTexture,self,RenderTexure,Unity,Video,设置
来源: https://blog.csdn.net/kylinok/article/details/113687701