MovieTexture が廃止された後、VideoPlayer を使用してビデオ URL を再生する

UnityWebRequestMultimedia.GetMovieTextureの使い方を学んでいるときに、廃止されていることがわかりました. MovieTexture を取得する他の方法があるかどうかを確認してください.

MovieTexture も非推奨であることが判明したため、使用する代替のコンポーネントとクラスを見つける必要がありました。

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の2つの属性値は使い方がよくわかりません)。

ビデオのレンダリング モードは、上記の player.renderMode プロパティ値によって設定されます。

2.コンポーネントを介して

1. ビデオソースを設定する

ここでコンポーネントにプロパティを設定するか、ソースをコードにインポートするか、コンポーネントに直接設定することができます。

コード設定方法

// 通过url
player.url = url;

// 通过VideoClip
player.clip = videoclip;

2. 再生モードを設定する

 コード設定方法

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

Camera Far PlaneCamera Near Plane は、カメラを渡す必要があります。機能的には、1 つはカメラのファー側で再生され、もう 1 つはカメラのニア側で再生されます。

レンダー テクスチャはデフォルト モードです。レンダラー テクスチャを作成して一緒に使用し、レンダー テクスチャにドラッグされるターゲット テクスチャ プロパティを作成する必要があります。Render Texture は Texture から継承され、Texture をサポートするコンポーネント (RawImage など) にドラッグされます。

 Material Override は基本的に上記のコード設定とコンポーネントでの設定と同じです。

画面を再生できないことを除いて、APIのみを使用できる場所は不明です。

おすすめ

転載: blog.csdn.net/heaventianjianke/article/details/123360953