unity moiveunity texture2d.duration为什么获取 的时间为

拓胜浸入式IT培训,让天下没有难学的课程!
您现在正在浏览:
& Unity3D研究之两种方式播放游戏视频
发布时间:
09:13:11 & 作者:拓胜科技 & 来源:拓胜科技 & 浏览次数: 次 &
摘要:Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。
  Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即 可,它会自动生成对应的MovieTexture对象。
  如下图所示,MOMO将default_video.mp4拖拽入Project视图中,如果视频 中含有音频的话会对应生成audio文件,因为我的视频没有音频所以没有生成 audio文件。
  接着在Hierarchy视图中创建一个Plane对象视频将在它之上播放,Directional light世界定向光用于照亮整个游戏场景,最后Main Camera对象将直直的照射在Plane对象。
  使用对象拖拽的形式为Mov Texture对象赋值,那么在脚本中就能直接使用它了,我们看看Test.cs脚本。
  Test.cs
  [代码]c#/cpp/oc代码:
using UnityE
using System.C
public class Test: MonoBehaviour
&&&&//电影纹理
&&&&public MovieTexture movT
&&&&void Start()
&&&&&&&&//设置当前对象的主纹理为电影纹理
&&&&&&&&renderer.material.mainTexture = movT
&&&&&&&&//设置电影纹理播放模式为循环
&&&&&&&&movTexture.loop =
&&&&void OnGUI()
&&&&&&&&if(GUILayout.Button(&播放/继续&))
&&&&&&&&&&&&//播放/继续播放视频
&&&&&&&&&&&&if(!movTexture.isPlaying)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&movTexture.Play();
&&&&&&&&&&&&}
&&&&&&&&if(GUILayout.Button(&暂停播放&))
&&&&&&&&&&&&//暂停播放
&&&&&&&&&&&&movTexture.Pause();
&&&&&&&&if(GUILayout.Button(&停止播放&))
&&&&&&&&&&&&//停止播放
&&&&&&&&&&&&movTexture.Stop();
  如下图所示,点击按钮后轻松的实现播放、暂停、停止操作。默认视频大小大家可在编辑器直接缩放Plane对象平面,而如果需要在游戏运行中动态的缩放平面使用方法:
  [代码]c#/cpp/oc代码:
transform.localScale = new Vector(1,1,1);
  模型默认缩放系数为1,这里可以调节平面X、Y、Z三个方向的缩放系数,平面的大小会随之改变,对应视频的大小也会随之改变。
  第二种播放视频的方式基于GUI。大家可以把刚刚创建的Plane对象以及世界定向光删除,直接将脚本绑定在摄像机对象中即可,接着我们简单的修改一下刚刚的游戏脚本。
  Test.cs
  [代码]c#/cpp/oc代码:
using UnityE
using System.C
public class Test: MonoBehaviour
&&&&//电影纹理
&&&&public MovieTexture movT
&&&&void Start()
&&&&&&&&//设置电影纹理播放模式为循环
&&&&&&&&movTexture.loop =
&&&&void OnGUI()
&&&&&&&&//绘制电影纹理
&&&&&&&&GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill);&
&&&&&&&&if(GUILayout.Button(&播放/继续&))
&&&&&&&&&&&&//播放/继续播放视频
&&&&&&&&&&&&if(!movTexture.isPlaying)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&movTexture.Play();
&&&&&&&&&&&&}
&&&&&&&&if(GUILayout.Button(&暂停播放&))
&&&&&&&&&&&&//暂停播放
&&&&&&&&&&&&movTexture.Pause();
&&&&&&&&if(GUILayout.Button(&停止播放&))
&&&&&&&&&&&&//停止播放
&&&&&&&&&&&&movTexture.Stop();
  在 GUI中播放视频的原理是直接通过GUI调用DrawTexture方法,这里和绘制贴图很想了吧嘿嘿~ 目前播放视频的大小是屏幕的宽高,如果想动态的修改视频的宽或高直接修改new Rect() 视频显示区域即可,如下图所示,视频已经满满的填充在整个GUI中啦。怎么样Unity中播放视频简单吧? 哇咔咔~
本文出自广州拓胜科技,转载请务必保留此出处,谢谢合作!
&拓胜愿景:自信成就好生活
&拓胜校训:勤奋、实践、自信、责任心
拓胜科技,是中国浸入式软件培训开山之祖,是中国"软件工厂"培训模式首创者。拓胜科技师资全部来自国际国内顶级软件设计专家,10年以上软件研发及管理经验。经过将近10年的发展,拓胜科技已经成为全国大学生高质素就业最可靠的导师和引路人。我们自2005年开始,为全国大学生提供最专业的java培训、android培训、ios培训、Uid培训、轻混合应用培训、软件测试培训及企业定制化培训。
it培训专题
it培训课程
it培训师资
it培训开班
it培训课件
it培训技术
it培训就业有一个很重大的问题。_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:60,906贴子:
有一个很重大的问题。收藏
Unity目前对视频貌似只有movietexture,当然了也比较好用。转换成ogg以后更加是小巧,问题来了。。。。如果做视频的进度条?根本获取不到视频的长度。还有一个问题就是:视频流,也就是边下载边播放。现在都是全部下载以后才能播放。求教。。。
unity3d,学习专业的游戏引擎-unity3d.达内游戏主程培训,一般要4-16周,就可掌握.变高端游戏达人-薪资翻番.unity3d费用根据培训课时定,上海官方咨询-unity3d.
顶一下。研究几天了。求思路~~~~~~~
顶一下。研究几天了。求思路啊~~~~~~~求思路啊~~~~~~~
顶一下。研究几天了。求思路啊~~~~~~~求思路啊~~~~~~~
顶一下。研究几天了。求思路啊~~~~~~~求思路啊~~~~~~~
顶一下。研究几天了。求思路啊~~~~~~~求思路啊~~~~~~~
我来了。。。。
你是做的视频?
我之前做过一个视频的播放器。但是我用的是3D模型,然后根据动画时间去分配进度条长度的。
MovieTexture.duration ?
试了一下ogv格式得不到duration的长度,返回是-1,但是其他格式,比如mp4是可以得到长度的,国外一些资料说是什么meta信息问题,导致自己的ogv格式没有这种信息,所以一直返回-1,解决方法到是没找到......所以没办法的话还得用一般视频格式.....但是这种视频导入u3d转码时间非常长。转移工程也不方便。
你解决这个问题了么
火星时代unity3d,争当游戏大触,月薪过万小意思,手绘技能,概念设计,商业应用一步到位,你与u3d游戏特效设计师只差一步,赶快点击吧!
AVProQuickTime
获取不到视频的长度但可以获取音频的啊!视频一般都有音频,根据音频的长度就可以。我都是这样做的。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或评论 (0条)
抢沙发,第一个发表评论[Unity3D 超级宝库-团购] 移动 视频 播放Mobile Movie Texture-教育视频-搜狐视频
[Unity3D 超级宝库-团购] 移动 视频 播放Mobile Movie Texture
<span class="c-black" data-rss-fanscount=" 人订阅
视频介绍:
[Unity3D 超级宝库-团购] 移动 视频 播放Mobile Movie Texture Unity超级宝库
[Unity3D 超级宝库-第3期团购] Mobile Movie Texture
最新版下载地址:
item.htm?id=
推荐出品人
教育热播榜下次自动登录
现在的位置:
& 综合 & 正文
Unity3D基础学习 利用NGUI的Texture播放视频
利用NGUI播放视频,首先你得导入你的视频
你的电脑中必须安装QuickTime软件,没有,去下一个,如果是Windows系统,安装完之后重启。
接下来转换你的视频格式,如果你的视频在QuickTime里无法播放,那么也无法在Unity里播放,把你的视频转为.MOV格式(如果你的视频无法在QuickTime里播放的话)。
虽然网上说QuickTime支持的视频类型很多,但是实际中发现,同样的格式有的就能播放,有的就不能播放。所以在导入Unity之前先放到QuickTime里试试。
打入后会这样一个视频文件,一个声音文件(如果你的视频有声音的话)。
接下俩见一个NGUI的Texture控件,把视频拖入Texture属性中,再把1.audio拖到Texture控件下。如图。
再添加三个Button和一个slider分别控制播放,暂停,停止,以及播放进度。再在每个Button上添加ButtonMessage脚本,Target为Texture,FuntionName为moviePlaneButtons,用来给texture传递播放状态信息。
接下来就是播放。
//影片纹理,必须附加到游戏物体上才能播放(指定到工程视图内要播放的音频)
public MovieTexture _MoiveT
float ftimeNow = 1;//当前播放时间
public UISlider _UIS//用来显示播放进度的进度条
string strPlayState = "null";//播放状态
void Start()
_MoiveTexture.loop =
//HideMoviePlane();
void Update()
TimeControl();
///控制影片和影片声音
void moviePlaneButtons(GameObject obj)
if (obj.name == "Btn-Play")
if (!_MoiveTexture.isPlaying)
//播放影片
_MoiveTexture.Play();
//播放物体上的声音(影片的子物体)
transform.audio.Play();
strPlayState = "Play";
if (obj.name == "Btn-Pause")
if (_MoiveTexture.isPlaying)
//暂停 再play就是继续
_MoiveTexture.Pause();
transform.audio.Pause();
strPlayState = "Pause";
if (obj.name == "Btn-Stop")
if (_MoiveTexture.isPlaying)
//结束 再play就是重新开始
_MoiveTexture.Stop();
transform.audio.Stop();
strPlayState = "Stop";
/// &summary&
/// 显示当前播放时间
/// &/summary&
void TimeControl()
if (strPlayState == "Play")
ftimeNow = ftimeNow + 1 * Time.deltaT
else if (strPlayState == "Pause")
else if (strPlayState == "Stop")
ftimeNow = 0f;
_UISlider.value = (ftimeNow / _MoiveTexture.duration);
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 unity texturepacker 的文章

 

随机推荐