我们知道,资源和我们用在场景中的game object(游戏物体)还是不一样的,一个fbx文件是一个“资源”,而将拖到场景中就变成了一个“带有各种组件的节点”。在从“资源”到“带组件的节点”的转化过程中我们需要手动做一些设置,一些修改,甚至需要添加一些新的组件以满足我们的需求,或者将多个节点组合成新的游戏物体(比如用多个模型道具组合成一个NPC的家)。
从“资源的重复利用”的角度来看,直接使用素材资源来搭建场景是低效的,更好更高效的方法是重复利用在场景中已经完成了设置、修改、组合等工作的游戏物体。于是Unity3D就开发了 Prefab(预设物体) 这个功能。
Prefab可以被看做是对scene(场景)中game object(游戏物体)的描述文件,可以被储存在Assets文件夹内,以方便在其他scene中重复利用。Prefab实际上并不包含任何模型、贴图等真正的素材文件,只是一个虚拟的“参考”。
我们可以把prefab当做一种特殊的“资源素材”,在场景中引用prefab,相当于按照这个prefab所描述的规范引用其涉及到的“真实素材”。如果我们不小心删除掉了这些“真实素材”,那么prefab就失去了作用。
将场景中的单个game object用鼠标拖到Project面板中的Assets目录下,就可以创建这个game object的prefab。
要使用Prefab,将其拖到Scene View或者Hierarchy面板即可。
普通的game object在Hierarchy中显示为白色,而与prefab相联的game object在Hierarchy中显示为蓝色。
同时,与prefab相联的game object在Inspector面板中会多出一行关于Prefab的按钮,其中 Select 可以选择其所对应的prefab资源文件, Revert 可以将该game object恢复到原prefab资源文件的样子, Apply 可以将在此game object上做的修改应用的prefab资源文件中去(这样场景中其他关联于此prefab资源的game objects就都会自动更新)。
可以选择菜单 GameObject >Break Prefab Instance 来断开game object与prefab之间的联接关系。
学了 平面图像追踪 后我们来学学怎么追踪现实中的 3D物体
一起来了解一下这张图 如图 1-1
如果你看了这张图有点懵 那就回去再复习 第三课
它们三个我在第三课已经描述了所以就不重复了 第三课 如图1-2
首先我们先删除 ImageTracker和ImageTarget 如图2-1
添加ObjectTracker作为EasyAR的子对象 如图2-2
了解 ObjectTracker 如图2-3
我们把ObjectTarget托入场景里 如图3-1
了解 ObjectTarget 如图3-2
Obj Path : 保存在Steaming Assts文件夹下的 3D物体的 名字 和 后缀名 ( 后缀名必须为Obj ) 比如 prefab.Obj
Name : 3D物体的名字 比如 prefab
Unity的工作准备好了,我们现在讲讲模型
使用 3Ds Max 或 Maya 或是其它建模工具,导入现有 FBX 或其他格式的模型,然后导出成 OBJ 格式
使用 3Ds Max 或 Maya 或是其它建模工具创建 3D 模型并输出为 OBJ 格式
扫描真实世界中的物体,使用一些3D重建工具生成3D模型
可以选择性地使用3Ds Max 或 Maya等建模工具对模型进行调整
使用3D Tracking的第一步是准备好待跟踪物体的3D模型文件。模型文件必须是OBJ格式,且必须包含相应的材质文件、以及至少一张纹理贴图文件。纹理贴图文件必须是JPEG或PNG格式。关于模型文件格式的更多细节 以下是一些模型的例子及反例,供快速参考
饼干色调太统一 ( NO )
因为色调太统一会导致电脑难找到3D物体中的细节 如图 4-1 , 4-2
包装盒色调复杂 ( YES )
第二个物体可以被EasyAR检测和跟踪。EasyAR无法检测和跟踪第一个物体,因为它的纹理太少了
如图 4-3 , 4-4
这两个物体都可以被EasyAR检测和跟踪
这个模型无法被加载进入EasyAR的tracker中,因为EasyAR找不到使用了绝对路径的文件 如图4-5 .4-6
文件名以及模型文件内部的路径不能有空格 如图4-7 .4-8
模型文件应该使用 UTF-8 编码格式 如图4-9 .4-10
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)