使用视频播放器组件游戏对象的组成部分,一个游戏对象可以包含任意数量的组件。Unity 拥有许多内置组件,您也可以通过编写继承自 MonoBehaviour 的脚本创建自己的组件。更多信息
参见 词汇表 将视频文件附加到游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路点等等。游戏对象的功能由附加到它的组件定义。更多信息
参见 词汇表,并在运行时在游戏对象的纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格的表面,以使其具有视觉细节。更多信息
参见 词汇表上播放。
下面的屏幕截图显示了一个附加到球形游戏对象的视频播放器组件。
默认情况下,视频播放器组件的材质属性设置为游戏对象的主纹理,这意味着当视频播放器组件附加到具有渲染器的游戏对象时,它会自动将其自身分配到该渲染器上的纹理(因为这是游戏对象的主纹理)。这里,游戏对象具有一个网格Unity 的主要图形基元。网格构成了 3D 世界的大部分。Unity 支持三角形或四边形多边形网格。NURBS、NURMS、细分曲面必须转换为多边形。更多信息
参见 词汇表 渲染器组件,因此视频播放器会自动将其分配到渲染器字段,这意味着视频片段将在网格渲染器一个网格组件,它从网格过滤器获取几何体并在由对象变换组件定义的位置渲染它。更多信息
参见 词汇表的纹理上播放。
您还可以为视频设置特定的播放目标,包括
一个渲染纹理一种特殊的纹理类型,在运行时创建和更新。要使用它们,首先创建一个新的渲染纹理,并指定其中一个摄像机渲染到其中。然后,您可以像使用普通纹理一样在材质中使用渲染纹理。更多信息
参见 词汇表
组件中的任何纹理字段
属性 | 描述 | ||
---|---|---|---|
源 | 选择视频的源类型。 | ||
视频片段 | 选择要分配给视频播放器组件的视频片段。这在 Web 平台上不受支持。 | ||
URL | 输入要分配给视频播放器的视频的 URL(例如,http:// 或 file://)。 | ||
更新模式 | 设置视频播放器组件用来更新其时间的时钟源。 | ||
DSP 时间 | 使用处理音频的相同时钟源。 | ||
游戏时间 | 使用与游戏时钟相同的时钟源。此时钟源受时间缩放和捕获帧率设置的影响。 | ||
未缩放的游戏时间 | 使用与游戏时钟相同的时钟源,但不受时间缩放或捕获帧率的影响。 | ||
唤醒时播放将其设置为 true 以使音频源在唤醒时开始播放 更多信息 参见 词汇表 |
当场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,放置环境、障碍物和装饰,从本质上讲,将游戏分成部分进行设计和构建。更多信息 参见 词汇表启动时播放视频。如果希望在运行时的另一个时间点触发视频播放,则取消选中。通过使用 Play() 命令进行脚本编写来触发它。 |
||
等待第一帧 | 在游戏开始前等待源视频的第一帧准备好显示。取消选中它以使视频时间与游戏的其余部分保持同步,这可能会导致丢弃前几帧。 | ||
循环 | 当源视频到达结尾时循环播放。取消选中它以在视频到达结尾时停止播放。 | ||
丢帧时跳过 | 启用此选项时,如果视频播放器组件检测到播放位置与游戏时钟之间存在偏差,则视频播放器将向前跳过。禁用此选项时,视频播放器不会校正偏差,并系统地播放所有帧。 | ||
播放速度 | 设置播放速度的乘数,值为 0 到 10 之间。默认设置为 1(正常速度)。如果该字段设置为 2,则视频以两倍于其正常速度播放。 | ||
渲染模式 | 选择视频的渲染方式。 | ||
摄像机远平面 | 在摄像机的远平面上渲染视频。 | ||
摄像机近平面 | 在摄像机的近平面上渲染视频。 | ||
渲染纹理 | 将视频渲染到渲染纹理中。 | ||
材质覆盖 | 通过渲染器的材质将视频渲染到游戏对象的选定纹理属性中。 | ||
仅限 API | 将视频渲染到VideoPlayer.texture 脚本 API 属性中。必须使用脚本将其分配到预期的目标。 | ||
摄像机 | 定义接收视频的摄像机。 | ||
Alpha | 设置要添加到源视频的全局透明度级别。这允许平面后面的元素通过它可见。有关 Alpha 通道的更多信息,请参阅视频透明度支持。 | ||
3D 布局 | 选择源视频中 3D 内容的布局。 | ||
无 | 视频没有任何 3D 内容。 | ||
并排 | 视频具有 3D 内容,其中左眼占据视频帧的左侧一半,右眼占据右侧一半。 | ||
上下 | 视频具有 3D 内容,其中左眼占据视频帧的上半部分,右眼占据下半部分。 | ||
目标纹理 | 定义视频播放器组件在其上渲染图像的渲染纹理。 | ||
纵横比图像比例尺寸的关系,例如其宽度和高度。 参见 词汇表 |
设置当使用相应的渲染模式时填充摄像机近平面、摄像机远平面或渲染纹理的图像的纵横比。 | ||
不缩放 | 不使用缩放。视频以居中的方式显示在目标矩形中。 | ||
垂直填充 | 缩放源以垂直填充目标矩形,裁剪左右两侧或在必要时在每一侧留出黑色区域。源纵横比保持不变。 | ||
水平填充 | 缩放源以水平填充目标矩形,裁剪顶部和底部区域或在需要时在顶部和底部留出黑色区域。源纵横比保持不变。 | ||
填充内部 | 缩放源以填充目标矩形,无需裁剪。根据需要在左侧和右侧或顶部和底部留出黑色区域。源纵横比保持不变。 | ||
填充外部 | 缩放源以填充目标矩形,在左侧和右侧或顶部和底部不留黑色区域,根据需要裁剪。源纵横比保持不变。 | ||
拉伸 | 水平或垂直缩放以填充目标矩形。源纵横比不会保留。 | ||
渲染器 | 选择视频播放器组件在其上渲染图像的渲染器。当设置为无时,将使用与视频播放器组件位于同一游戏对象上的渲染器。 | ||
自动选择属性 | 启用此选项时,视频播放器组件会自动选择渲染器的主纹理。禁用此选项时,可以手动设置材质属性选项。 | ||
材质属性 | 接收视频播放器组件图像的材质纹理属性的名称。 | ||
音频输出模式 | 定义如何输出源的音频轨道。 | ||
无 | 不播放音频。 | ||
音频源 | 音频样本被发送到选定的音频源一个组件,它在场景中将音频片段回放给音频监听器或通过音频混音器。更多信息 参见 词汇表,从而应用 Unity 的音频处理。 |
||
直接 | 音频样本直接发送到音频输出硬件,绕过 Unity 的音频处理。 | ||
仅限 API(实验性) | 音频样本被发送到关联的AudioSampleProvider。 | ||
受控轨道 | 视频中音频轨道的数量。 仅在源为URL时显示。当源为视频片段时,轨道的数量通过检查视频文件来确定。 |
||
轨道编号 | 启用关联的音频轨道以供播放。必须在播放之前设置此选项。 复选框左侧的文字提供了有关音频轨的信息,具体包括轨道的编号、语言和声道数。 当源为 URL 时,此信息仅在播放期间可用。 此属性仅在您的源为包含音频轨(或多条轨)的视频剪辑,或您的源为 URL(允许您指示在播放期间从 URL 预期获得多少条轨)时出现。 |
||
音频源 | 通过其播放音频轨的音频源。目标音频源也可以播放音频剪辑。 音频源的播放控制(脚本 API 中的 Play On Awake 和Play() )不适用于视频源的音频轨。此属性仅在音频输出模式设置为音频源时出现。 |
||
静音 | 静音关联的音频轨。在音频源模式下,使用音频源的控制。 此属性仅在音频输出模式设置为直接时出现。 |
||
音量 | 关联音频轨的音量。在音频源模式下,使用音频源的音量。 此属性仅在音频输出模式设置为直接时出现。 |
以下脚本演示了 Video Player 组件的一些功能。
// 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