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)

相关文章

实现Unity AssetBundle资源加载管理器 AssetBundle是实现资源...
Unity3D 使用LineRenderer绘制尾迹与虚线 1.添加LineRendere...
Unity 添加新建Lua脚本选项 最近学习Unity的XLua热更新框架的...
挂载脚本时文件名和类名的关联方式 写过Unity脚本的人应该都...
Unity单例基类的实现方式 游戏开发的过程中我们经常会将各种...
这篇文章主要介绍了Unity游戏开发中外观模式是什么意思,具有...