Vuforia的使用:5.5版本
<1> Develop ---> Add License Key(创建秘钥)
<2> Project Type(选择Development) ---> App Name(项目名称)
--->Device(选择移动端Mobile) ---> License Key(选择免费版
Starter-No Change) ---> Next(下一步)
<3> 同意协定 ---> Confirm(确定)
<4> 选择创建的密钥
<5> Target Manager ---> Add Database(创建识别图项目)
<6> Name(项目名称) Type(类型):Device(设备)
<7> 选择识别图项目 ---> Add Target(上传识别图:识别图不能用
中文命名)
<8> Type:使用Single Image
File:Broese(上传的是单张图片)
Width:设置宽度(也就是缩放的倍数)
<9> 选择识别图 ---> Download Database(选择Unity Enditor)
<10> Downloads ---> SDK(下载最新的SDK)
<11> Unity中导入下载的SDK(导入之前先变更环境)
<12> 把相机删掉 ---> 拉入Vuforia --> Prefabs --> ARCamera(这
时会出现一个报错,把Web Cam Behaviour勾选(意思是不使用
Unity中的相机))
<13> 导入下载的识别图信息
<14> ARCamera ---> App License Key(输入生成的密钥) ---> 勾
选Database Load Behaviour下的选项(启用识别图工程)
<15> ARCamera ---> 修改Max Simultaneous Tracked Image和Max
Simultaneous Tracked Image的值
<16> 拖入一张识别图信息ImageTarget ---> Image Target
Behaviour(Database:下载的识别图Image Target:识别图名称)
<17> 可以再模型中换材质和法线贴图
<18> 模型放在ImageTarget的子集里
<19> 导出时,在Build Settings里加入场景(注意有没有配置安卓平
台)
<20> 打开Payer Settings(发布设置) ---> Other Settings --> Bundle
Identifer(com.公司名.项目名) ---> Bundle Identifer与
ComPany Name名称一致 ---> Resolution and Presentation
--> Defult orientation(选择旋转位置) ---> Build(导出发布)
<21> 双卡互动设计:制作思路
1.通过碰撞器实现。碰撞器接触到另一模型时,产生互动
2.通过射线定位。发射的射线碰到另一物体时产生交互
<22> 碰撞器实现:
流程:给两个模型都加入碰撞器,并分别给予标签,通过代码
控制,当不同的碰撞状态时,用动画的切换产生交互。
注意事项:碰撞状态有三种:1.初次进入碰撞器
2.停留在碰撞器中 3.离开碰撞器
<23> 给模型添加盒形碰撞器,并调整碰撞器的大小(尽量大些),勾
选is trigger
<24> 给物体新建一个标签(Tag)和添加一个刚体(旋转角度要固定)
<25> 对焦脚本,放在ARCamera上
void Start () {
GameObject ARCamera=GameObject.Find("ARCamera");
Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
}
void Update () {
Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
}
<26> 给物体添加脚本
//进入碰撞器的函数
void OnTRiggerEnter(Collider col)
//Collider col为函数的参数,代表进入碰撞器的物体的信息
{
//判断进入碰撞器的物体是否为另一个模型,如果是
if(col.gameObject.tag.CompareTo("另一个物体添加的标签") == 0)
{
//则播放自身动画组件中的“获取的动画”
gameObject.GetComponent
//给一个物体添加Audio Source组件:去掉Play On Awake,勾选Loop
//两个碰撞器接触时开始播放音效
gameObject.GetComponent
}
}
//停留在碰撞器中的函数
void OnTriggerStay(Collider col)
{
//判断进入碰撞器的物体是否为另一个模型,如果是
if(col.gameObject.tag.CompareTo("另一个物体添加的标签") == 0)
{
//则播放自身动画组件中的“获取的动画”
gameObject.GetComponent
//让物体朝向碰撞到的模型位置
gameObject.transform.LookAt(col.transform.position);
}
}
//离开碰撞器中的函数
void OnTriggerExit(Collider col)
{
//判断离开碰撞器的物体是否为另一个模型,如果是
if(col.gameObject.tag.CompareTo("另一个物体添加的标签") == 0)
{
//则播放自身动画组件中的“获取的动画”(也就是初始动画)
gameObject.GetComponent
//两个碰撞器接离开时停止播放音效
gameObject.GetComponent
}
}