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