AR卡片的双卡互动(制作步骤)

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

      FileBroese(上传的是单张图片)

      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 ImageMax

      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<Animation> ().Play ("获取自身的动画");

        //给一个物体添加Audio Source组件:去掉Play On Awake,勾选Loop
        //两个碰撞器接触时开始播放音效

        gameObject.GetComponent<AudioSource>().Play(); 
    }

//停留在碰撞器中的函数
void OnTriggerStay(Collider col)
{
    //判断进入碰撞器的物体是否为另一个模型,如果是
    if(col.gameObject.tag.CompareTo("另一个物体添加的标签") == 0)
    {
        //则播放自身动画组件中的“获取的动画”
        gameObject.GetComponent<Animation> ().Play ("获取自身的动画");

        //让物体朝向碰撞到的模型位置
        gameObject.transform.LookAt(col.transform.position); 
    }
}
//离开碰撞器中的函数
void OnTriggerExit(Collider col)
{
    //判断离开碰撞器的物体是否为另一个模型,如果是
    if(col.gameObject.tag.CompareTo("另一个物体添加的标签") == 0)
    {
        //则播放自身动画组件中的“获取的动画”(也就是初始动画)
        gameObject.GetComponent<Animation> ().Play ("获取自身的动画");

        //两个碰撞器接离开时停止播放音效
        gameObject.GetComponent<AudioSource>().Stop(); 
    }

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值