Unity3DMovieTexture贴图之QuickTime格式转换问题

           本人小葡萄,第一次在简书网发帖,帖子内容如有侵权或不属实,请发送消息至邮箱furuipeng0910@qq.com。有共同兴趣可以添加QQ好友757721728希望能和大家一起探讨Unity相关知识,一起进步。

            Unity3D,大家一定也都接触过MovieTexture贴图,将外部视频导入到Unity3D中,但是在导入过程,由于Unity3D引擎不能直接读取视频文件,并且对视频文件的格式有一定限制,且外部文件不能在Unity中直接使用,因此,我搜寻了网上的资料并请教多位大神解决了这个问题,其中我个人在解决问题过程中遇到过多数的问题,我将我在这个格式遇到的问题做了一些总结。

问题一:导入视频文件到UnityProject面板中,出现如图A001 的BUG报错:

图A001

问题分析第一轮:这个报错提示QuickTime没有安装正确

原因探究:Unity导入视频文件的环境需要有QuickTime插件

解决思路第一步:百度下载QuickTime插件并打开该应用安装程序进行安装

问题下载安装QuickTime插件后,将视频文件导入到UnityProject面板中,发现图002仍然报错

图002

问题分析第二轮:未读取到视频码,无法解码视频文件格式,环境配置不齐备

解决思路第二步:在Unity官网的AssetStore下载安装一个Unity内部插件ITween

下载完成后,导入视频文件格式,成功识别视频文件并解码成了一个MoiveTexture纹理材质并带有一个AudioSource音频的子对象

Unity3D视频导入建议总结:

(1)检查视频格式是否为Unity可读取格式(一般mov、mp4、ogg等QQ影音应用能够识别的常见格式都可以解码成功)

(2)检查当前系统中是否配置QuickTime环境,也就是QuickTime插件是否安装在当前系统中

(3)QuickTime插件必须在官网下载安装,且必须是最新版本,旧版本功能暂未使用过,不过一般新版本是解决了旧版本的bug的基础下增加的功能

(4)检查当前系统是否配置ITween插件,或将插件导入到当前Unity工程中

完成后测试视频文件:

脚本如下://代码有些菜,还请大神多多指点

1.引用UnityEngzine引擎的命名空间UI

引用命名空间UnityEngzine.UI

2.方法架构与音频、视频、灯光亮度、灯光亮度与音频控制的声明

3.初始化方法,初始化使用UGUI的slider控制视频亮度也就是Directional平行光亮度和音频播放控制

4.用GUI绘制播放,停止按钮并为此添加点击事件


最后一步只需要赋值即可:

1.创建一个Plane对象,并x轴旋转90度保持摄像机能观察到

2.拖拽视频贴图下的音频文件到Plane对象上

3.为Plane对象添加两个组件脚本,一个为上列写的视频脚本,另一个为AudioSource音频组件

4.将视频和音频拖拽到Plane对象两个新添加的组件的赋值框处

5.创建两个UGUI的Slider对象,一个为音频控制器,一个为灯光控制器,将带有音频组件的Plane对象拖到slider的事件处并选择volume设置音频音量大小与slider滚动条值一致,将带有灯光组件的对象拖拽到灯光控制器的事件处,并选择Intensity设置灯光强度与slider滚动条值一致

5.运行调试成功播放视频

推荐阅读更多精彩内容