Version: 2023.2
视频概述
从 MovieTexture 迁移到 VideoPlayer

视频播放器 (Video Player) 组件

使用视频播放器组件可将视频文件附加到游戏对象,然后在运行时在游戏对象的纹理上播放。

以下截屏显示了一个连接到球形游戏对象的视频播放器组件。

By default, the Material Property of a Video Player component is set to a GameObject’s main texture, which means that when the Video Player component is attached to a GameObject that has a Renderer, it automatically assigns itself to the Texture on that Renderer (because this is the main Texture for the GameObject). Here, the GameObject has a Mesh Renderer component, so the Video Player automatically assigns it to the Renderer field, which means the Video Clip plays on the Mesh Renderer’s Texture.

A Video Player component attached to a spherical GameObject, playing the Video Clip on the GameObject’s main Texture (in this case, the Texture of the Mesh Renderer)
A Video Player component attached to a spherical GameObject, playing the Video Clip on the GameObject’s main Texture (in this case, the Texture of the Mesh Renderer)

还可设置要播放视频的特定目标,包括:

Video Player component reference

属性 描述
来源 Choose the source type of your video.
Video Clip Select the Video Clip to assign to the Video Player component. This isn’t supported on the Web platform.
URL Enter the URL (for example, http:// or file://) of the video you want to assign to the Video Player.
Update Mode Set the clock source that the Video Player component uses to update its timing.
DSP Time Use the same clock source that processes audio.
Game Time Use the same clock source as the game clock. This clock source is affected by the time scaling and capture frame rate settings.
Unscaled Game Time Use the same clock source as the game clock but without being affected by time scaling or capture frame rate.
Play On Awake Play the video when the Scene launches. Clear it if you want to trigger the video playback at another point during runtime. Trigger it via scripting with the Play() command.
Wait For First Frame Wait for the first frame of the source video to be ready for display before the game starts. Clear it to keep the video time in sync with the rest of the game, which might cause the first few frames to be discarded.
Loop Loop the source video when it reaches its end. Clear it to stop playing the video when it reaches the end.
Skip On Drop When you enable this option, and the Video Player component detects drift between the playback position and the game clock, the Video Player skips ahead. When you disable this option, the Video Player doesn’t correct for drift and systematically plays all frames.
Playback Speed Set a multiplier for the playback speed, as a value between 0 and 10. This is set to 1 (normal speed) by default. If the field is set to 2, the video plays at two times its normal speed.
Render Mode Choose how the video will render.
Camera Far Plane 在摄像机的远平面上渲染视频。
Camera Near Plane 在摄像机的近平面上渲染视频。
Render Texture 将视频渲染到渲染纹理中。
Material Override 通过游戏对象渲染器的材质将视频渲染到游戏对象的选定纹理属性中。
API Only 将视频渲染到 VideoPlayer.texture 脚本 API 属性中。必须使用脚本将纹理分配给其预期目标。
Camera 定义接收视频的摄像机
Alpha Set the global transparency level to add to the source video. This allows elements behind the plane to be visible through it. For more information about alpha channels, refer to video transparency support.
3D Layout Choose the layout of 3D content in the source video.
Video doesn’t have any 3D content.
Side by Side Video has 3D content where the left eye occupies the left half and right eye occupies the right half of video frames.
Over Under Video has 3D content where the left eye occupies the upper half and right eye occupies the lower half of video frames.
Target Texture 定义视频播放器组件用于渲染图像的渲染纹理。
Aspect Ratio Set the aspect ratio of the images that fill the Camera Near Plane, Camera Far Plane, or Render Texture when the corresponding Render Mode is used.
No Scaling 不使用缩放。视频在目标矩形内居中。
Fit Vertically 对源进行缩放以垂直适应目标矩形,在必要时裁剪左侧和右侧或在每侧留下黑色区域。此情况下保留源宽高比。
Fit Horizontally 对源进行缩放以水平适应目标矩形,在必要时裁剪顶部和底部区域或在顶部和底部留下黑色区域。此情况下保留源宽高比。
Fit Inside 对源进行缩放以适合目标矩形而不必裁剪。根据需要,在左侧和右侧或上方和下方留下黑色区域。此情况下保留源宽高比。
Fit Outside 对源进行缩放以适应目标矩形,而不必在左侧和右侧或上方和下方留下黑色区域,可根据需要进行裁剪。此情况下保留源宽高比。
Stretch Scale both horizontally or vertically to fit the destination rectangle. The source aspect ratio isn’t preserved.
Renderer Select the Renderer where the Video Player component renders its images. When set to None, the Renderer on the same GameObject as the Video Player component is used.
Auto-Select Property When you enable this option, the Video Player component selects the Renderer’s main texture automatically. When you disable this option, you can set the Material Property option manually.
Material Property 接受视频播放器组件图像的材质纹理属性的名称。
Audio Output Mode 定义如何输出源的音频轨道。
Audio isn’t played.
Audio Source 音频样本发送到选定音频源,允许应用 Unity 的音频处理。
Direct 音频样本绕过 Unity 的音频处理,直接发送到音频输出硬件。
API Only (Experimental) 音频样本发送到关联的 AudioSampleProvider
Controlled Tracks The number of audio tracks in the video.

Only shown when Source is URL. When Source is Video Clip, the number of tracks is determined by examining the video file.
Track Number Enable the associated audio track to use for playback. This must be set prior to playback.

The text to the left of the checkbox provides information about the audio track, specifically the track number, language, and number of channels.

When the source is a URL, this information is only available during playback.

This property only appears if your source is a Video Clip that has an audio track (or tracks), or your source is a URL (allowing you to indicate how many tracks are expected from the URL during playback).
Audio Source The audio source through which the audio track is played. The targeted audio source can also play Audio Clips.

The audio source’s playback controls (Play On Awake and Play() in scripting API) don’t apply to the video source’s audio track.

This property only appears when the Audio Output Mode is set to Audio Source.
Mute Mute the associated audio track. In Audio Source mode, the audio source’s control is used.

This property only appears when the Audio Output Mode is set to Direct.
Volume Volume of the associated audio track. In Audio Source mode, the audio source’s volume is used.

This property only appears when the Audio Output Mode is set to Direct.

视频播放器脚本示例

The following script demonstrates a few of the Video Player component’s features.

// Examples of Video Player function

using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        // Will attach a Video Player to the main camera.
        GameObject camera = GameObject.Find("Main Camera");

        // VideoPlayer automatically targets the camera backplane when it is added
        // to a camera object, no need to change videoPlayer.targetCamera.
        var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();

        // Play on awake defaults to true. Set it to false to avoid the url set
        // below to auto-start playback since we're in Start().
        videoPlayer.playOnAwake = false;

        // By default, Video Players added to a camera will use the far plane.
        // Let's target the near plane instead.
        videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;

        // This will cause our Scene to be visible through the video being played.
        videoPlayer.targetCameraAlpha = 0.5F;

        // Set the video to play. URL supports local absolute or relative paths.
        // Here, using absolute.
        videoPlayer.url = "/Users/graham/movie.mov";

        // Skip the first 100 frames.
        videoPlayer.frame = 100;

        // Restart from beginning when done.
        videoPlayer.isLooping = true;

        // Each time we reach the end, we slow down the playback by a factor of 10.
        videoPlayer.loopPointReached += EndReached;

        // Start playback. This means the Video Player may have to prepare (reserve
        // resources, pre-load a few frames, etc.). To better control the delays
        // associated with this preparation one can use videoPlayer.Prepare() along with
        // its prepareCompleted event.
        videoPlayer.Play();
    }

    void EndReached(UnityEngine.Video.VideoPlayer vp)
    {
        vp.playbackSpeed = vp.playbackSpeed / 10.0F;
    }
}

VideoPlayer

视频概述
从 MovieTexture 迁移到 VideoPlayer