现在的位置: 首页 > 综合 > 正文

Metaio-Unity教程笔记(二),Content Type

2013年01月23日 ⁄ 综合 ⁄ 共 1270字 ⁄ 字号 评论关闭

教程二实际上展示了3种Content Type,姑且叫做内容类型吧

模型,MetaioMan、Truck
图片,Image
视频,Movie

其中MetaioMan 和 Truck 都和上一节没什么差别。
Image 只是普通的渲染Texture (GameObject + MeshRenderer + Unlit/Transport Shader)
Movie 是这一节的重点:

metaioMovieTexture.cs
可以看到,moviePlane上加载了一个metaioMoveTexture 组件
该组件使用了 Assets/StreamingAssets/Toturial2/demo_movie.alpha (通过Metaio自己的AssetsManager管理类进行载入)
可以通过 movieFile 字段来修改其对应的资源。

但是这个例子在Win32上无法运行,查阅API后,确认了Metaio目前不支持Win32上的视频播放(难道是版权之类的问题?)。

OK,那有什么办法可以让我们像各种视频里的那样成功播放视频呢?

Unity自身是支持MovieTexture的,在Win32下,需要先安装QuickTime,才能顺利导入视频文件到Unity(Import操作)。如图

当MovieTexture资源准备好了,下一步就是修改metaioMovieTexture类,以满足我们的需求:

//增加新属性
	public MovieTexture mt;

//修改相关方法
        public void pause()
	{
		mt.Pause();
		return;
	}
	
	public void play(bool loop)
	{
		mt.loop = loop;
		if( !mt.isPlaying)
			mt.Play();
		return;
	}
	
	void Start()
	{
		renderer.material.mainTexture = mt;
		mt.Play();
		return;
	}

	public void stop()
	{
		mt.Stop();
		return;
	}

经过以上改造后,就可以顺利播放了。

再回头看metaioMoveTexture这个类,它基本上是做了2件事情
1、通过metaioSDK.createGeometryFromMovie加载demo_movie.alpha视频资源,得到视频流的指针
2、创建一个Texture对象,并通得到其NativeID传递给MetaioSDK来操作贴图对象,metaioSDK.setMovieTextureTargetTextureID(movieGeometry, textureID);

通过这次改造,可以看出2点规律
1、Metaio-Unity在使用上极其简单,基本上就是拖个MetaioSDK,再拖个MetaioTracker就OK了,剩下渲染部分就完全不是Metaio的事了。
2、Image,MetaioMan,Truck和Movie其实在Unity的角度来看都没有什么区别,都属于可渲染对象。

好像懂了点什么,还是赶紧进入第三课的学习吧。

抱歉!评论已关闭.