Version: 2020.1
自定义渲染纹理
3D 纹理

电影纹理 (Movie Textures)

注意:MovieTexture 将在 Unity 的未来版本中弃用。应使用 VideoPlayer 进行视频下载和电影播放。

电影纹理__是 Unity 从视频文件创建的动画__纹理

要创建电影纹理,请将视频文件放在项目的 Assets Folder 中。Unity 以与常规纹理文件相同的方式使用此视频文件。

Unity 使用 Apple QuickTime 导入视频文件。在 Windows 上,您需要安装 Quicktime 才能导入视频文件。请从 Apple 支持网站的下载页面 (Apple Support Downloads) 下载 Quicktime。Unity 支持的文件类型是 QuickTime 程序可以播放的类型(通常为 .mov.mpg.mpeg.mp4.avi.asf)。

属性

电影纹理 Inspector 与常规的纹理 Inspector 相似。

视频文件用作 Unity 中的电影纹理
视频文件用作 Unity 中的电影纹理
属性 功能
Aniso Level 以大角度查看纹理时提高纹理质量。适用于地板和地面纹理
Filtering Mode 选择纹理在通过 3D 变换拉伸时如何进行过滤
Loop 如果启用此选项,电影将在完成播放时循环播放
Quality 压缩 Ogg Theora 视频文件。值越高意味着质量越高,但文件越大

详细信息

将视频文件添加到项目时,Unity 自动将该文件导入并转换为 Ogg Theora 格式。Unity 导入电影纹理后,即可像常规纹理一样将其附加到任何__游戏对象__或__材质__。

播放电影

游戏开始运行时不会自动播放电影纹理。必须使用简短的脚本告诉它何时播放。

// 这行代码将使电影纹理开始播放
((MovieTexture)GetComponent<Renderer>().material.mainTexture).Play();


附加以下脚本可在按下空格键时切换电影播放:

public class PlayMovieOnSpace : MonoBehaviour {
    void Update () {
        if (Input.GetButtonDown ("Jump")) {
            
            Renderer r = GetComponent<Renderer>();
            MovieTexture movie = (MovieTexture)r.material.mainTexture;
            
            if (movie.isPlaying) {
                movie.Pause();
            }
            else {
                movie.Play();
            }
        }
    }
}


有关播放电影纹理的更多信息,请参阅电影纹理脚本参考页面

电影音频

导入电影纹理时,Unity 还会导入随附的音轨。此音频显示为电影纹理的__音频剪辑 (AudioClip)__ 子级。

视频的音频轨道在 Project 视图中显示为电影纹理的子级
视频的音频轨道在 Project 视图中显示为电影纹理的子级

要播放此音频,必须将音频剪辑附加到游戏对象。将音频剪辑从 Project 视图拖到 Scene 或 Hierarchy 视图中的任何游戏对象上。通常,此游戏对象就是显示电影的游戏对象。然后,使用 AudioSource.Play() 使电影的音频轨道随其视频一起播放。

iOS

在 iOS 上不支持电影纹理。取而代之的是使用 Handheld.PlayFullScreenMovie 提供的全屏流媒体播放功能。

将视频保存在项目的 Assets文件夹中的 StreamingAssets 文件夹内。

Unity iOS 支持 iOS 设备上能正常播放的任何电影文件类型(即扩展名为 .mov.mp4.mpv.3gp 的文件)并使用以下压缩标准之一:

  • H.264 Baseline Profile Level 3.0 视频
  • MPEG–4 Part 2 视频

有关受支持的压缩标准的更多信息,请参阅 iPhone SDK MPMoviePlayerController 类参考

一旦调用 Handheld.PlayFullScreenMovie,屏幕就会从当前的内容淡出并淡入到指定的背景颜色。电影准备播放的过程可能需要一些时间。与此同时,播放器将继续显示背景颜色,还可能显示进度指示条让用户知道电影正在加载。播放完成后,屏幕将淡出并淡入先前的内容。

视频播放器不支持在播放视频时切换为静音

Unity 使用 Apple 的嵌入式播放器播放视频文件(截至 SDK 3.2 和 iPhone OS 3.1.2 及更早版本)。目前存在阻止 Unity 切换为静音的错误。

视频播放器不遵循设备的方向

Apple 视频播放器和 iPhone SDK 未提供调整视频方向的方法。要解决此问题,一种常见的方法是以横向和纵向方向手动创建每个电影的两个副本。然后,可在播放之前确定设备的方向,从而选择正确的电影版本。

Android

在 Android 上不支持电影纹理。取而代之的是使用 Handheld.PlayFullScreenMovie 提供的全屏流媒体播放功能。

将视频保存在项目的 Assets文件夹中的 StreamingAssets 文件夹内。

Unity Android 支持 Android 所支持的任何电影文件类型(即扩展名为 .mp4.3gp 的文件),并使用以下压缩标准之一:

  • H.263
  • H.264 AVC
  • MPEG–4 SP

但是,设备供应商热衷于扩展此列表,因此一些 Android 设备能够播放除所列格式之外的其他格式,例如高清 (HD) 视频。

有关受支持的压缩标准的更多信息,请参阅 Android SDK 核心媒体格式 (Core Media Formats) 文档

一旦调用 Handheld.PlayFullScreenMovie,屏幕就会从当前的内容淡出并淡入到指定的背景颜色。电影准备播放的过程可能需要一些时间。与此同时,播放器将继续显示背景颜色,还可能显示进度指示条让用户知道电影正在加载。播放完成后,屏幕将淡出并淡入先前的内容。

自定义渲染纹理
3D 纹理