MovieTexture弃用后使用VideoPlayer播放视频Url

学习使用UnityWebRequestMultimedia.GetMovieTexture时发现已被弃用了,看还有没有别的方式获得MovieTexture。

发现MovieTexture这个也被弃用了,只好找代替组件和类使用了,下面是VideoPlayer的简单用法。

需导入命名空间 using UnityEngine.Video;

1、通过代码传入Url

先要加入AudioSource和Renderer组件(如果是MeshRenderer要加上MeshFilter),在加上VideoPlayer组件会自动绑定AudioSource和Renderer组件(当然也可以手动自己绑)。

// 获得 Video 组件
VideoPlayer player = GetComponent<VideoPlayer>();

// 传入 URL
player.url = url;

// 设置绘制视频内容的位置【将视频内容绘制到用户指定的游戏对象的当前材质属性中】
player.renderMode = VideoRenderMode.MaterialOverride;

// 设置目标 Renderer
player.targetMaterialRenderer = GetComponent<Renderer>();

player.targetMaterialProperty = "_MainTex";

player.Play();

上面是官方的示例代码(targetMaterialProperty的两个属性值没太明白用法)。

其中视频绘制的模式,通过上面的player.renderMode属性值设置。

2、通过组件

1、设置视频来源

可以现在组件中设置好属性,在代码中导入Source,也可以直接在组件中设置。

代码设置方式

// 通过url
player.url = url;

// 通过VideoClip
player.clip = videoclip;

2、设置播放模式

 代码设置方式

// 设置绘制视频内容的位置【将视频内容绘制到用户指定的游戏对象的当前材质属性中】
player.renderMode = VideoRenderMode.MaterialOverride;

Camera Far PlaneCamera Near Plane需要传入摄像机。功能上,一个在摄像机远景面播放,一个在摄像机近景面播放。

Render Texture是默认模式,需要创建Renderer Texture配合使用,创建好拖入Render Texture的Target Texture属性。Render Texture继承自Texture,再拖入支持Texture的组件中使用(如:RawImage)。

 Material Override和上面代码设置和在组件中设置基本相同。

API Only不清楚除了不能播放画面外,具体可以用在哪里。

猜你喜欢

转载自blog.csdn.net/heaventianjianke/article/details/123360953
今日推荐