首先说下大致思路
当卡片离开摄像头时间,ImageTarget-Image的SetActive (false),所以其子物体(model)也就不显示了,因此解决的办法就是在Target (false)时间将模型放到一个合适的位置,这样就能实现脱卡,当Target (true)时,再回到原来位置。具体放到什么位置合适
 
在EasyAR下面的Augmenter下建设一个空物体,用来存放脱卡后的模型命名ZhenF(真模型的Father),这个位置的模型不会移动,永远都在屏幕固定位置。然后在ZhenF下面建一个空物体用来保存模型的最佳位置和角度。
 
然后在ImageTarget-Image的下面建一个空物体用来保存target出现时间的最佳位置和角度。

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ZSetactive : MonoBehaviour
  4. {
  5. public Transform GreatTransfrom;//脱卡后最佳位置
  6. public GameObject zhenf;//模型脱卡时存放位置
  7. public Transform[] TargetTransfrom;//模型在卡片上的最佳位置
  8. public GameObject[] Target;//卡片
  9. public GameObject[] zhen;//模型
  10. void Start ()
  11. {
  12. for (int i = 0; i < zhen.Length; i++) {//所有模型初始化全部不显示
  13. zhen [i].SetActive (false);
  14. }
  15. }
  16. public void tiaozheng ()//模型倾斜时调整最佳位置
  17. {
  18. GreatTransfrom.localPosition = new Vector3 (0f,0f,0f);
  19. GreatTransfrom.localRotation  = Quaternion .identity;
  20. for (int i = 0; i < zhen.Length; i++) {
  21. zhen [i].transform.localPosition  = GreatTransfrom.localPosition ;
  22. zhen [i].transform.localRotation  = GreatTransfrom.localRotation ;
  23. }
  24. }
  25. void Update ()
  26. {
  27. WhoShouldShow();//哪个模型应该显示
  28. TargetT();//有卡片时
  29. TargetF();//无卡片时
  30. }
  31. int index = -1;
  32. void WhoShouldShow(){//哪个模型应该显示
  33. //                for (int i = 0; i < Target .Length ; i++) {
  34. //                        if (Target [i].activeSelf == true) {
  35. //                        zhen [i].SetActive (true);
  36. //                        index = i ;
  37. //                                if (i != index ) {
  38. //                                zhen [i].SetActive (false);
  39. //                                }
  40. //                        }
  41. //                }
  42. if (Target [0].activeSelf == true) {
  43. zhen [0].SetActive (true);
  44. zhen [1].SetActive (false);
  45. zhen [2].SetActive (false);
  46. zhen [3].SetActive (false);
  47. }
  48. if (Target [1].activeSelf == true) {
  49. zhen [0].SetActive (false);
  50. zhen [1].SetActive (true);
  51. zhen [2].SetActive (false);
  52. zhen [3].SetActive (false);
  53. }
  54. if (Target [2].activeSelf == true) {
  55. zhen [0].SetActive (false);
  56. zhen [1].SetActive (false);
  57. zhen [2].SetActive (true);
  58. zhen [3].SetActive (false);
  59. }
  60. if (Target [3].activeSelf == true) {
  61. zhen [0].SetActive (false);
  62. zhen [1].SetActive (false);
  63. zhen [2].SetActive (false);
  64. zhen [3].SetActive (true);
  65. }
  66. }
  67. void TargetT(){
  68. for (int i = 0; i < Target.Length; i++) {//不脱卡
  69. if (Target [i].activeSelf == true) {
  70. zhen [i].transform.parent = Target [i].transform;
  71. zhen [i].transform.position = TargetTransfrom [i].position;
  72. }
  73. }
  74. }
  75. void TargetF(){//脱卡
  76. for (int i = 0; i < Target.Length; i++) {
  77. if (Target [i].activeSelf == false) {
  78. zhen [i].transform.parent = zhenf.transform;
  79. zhen [i].transform.localPosition  = GreatTransfrom.localPosition;
  80. }
  81. }
  82. }
  83. }

把这个脚本可以放在一个空物体上面。。

GJM :Unity使用EasyAR实现脱卡功能的更多相关文章

  1. AR模型脱卡,unity端实现步骤详情

    AR模型脱卡unity端实现具体步骤 AR模型脱卡的原理 利用一些unity端AR插件做AR应用.通常会有一个需求,当识别物消失的时候,将3D模型从识别物这个父物体上移除,显示在屏幕中央.那么原理就显 ...

  2. HP电脑的增霸卡功能操作详解

    机房管理中HP电脑的增霸卡功能操作详解 一.软件去除保护 1).电脑开机后等待进入增霸卡选择系统界面: 2).按F1帮助,F10进入增霸卡BIOS界面: 3).光标切换到>>>系统还 ...

  3. Unity牛逼的2D纹理功能

    [Unity牛逼的2D纹理功能] 1.可直接将贴图生成成为Cubemap. 2.自动生成Mipmap. 3.查看纹理被当前场景哪些对象引用.在Project窗口中,右击图像,选择 参考:file:// ...

  4. 13.56mhz自动寻卡功能业界最低功耗:SI522

    随着智能门锁的不断火爆,很多智能门锁产商为了让产品的功耗下降下来,都在不断寻找能自动寻卡的13.56mhz.今天我就为大家推荐一款13.56mhz芯片自动寻卡业界最低功耗,不仅是业界最低另外还完全PI ...

  5. Unity用Vuforia做AR实现脱卡效果

    这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105

  6. Unity -- 用EasyAR制作出AR红包

    第一部分:前言 实现功能:打开APP或运行该demo后,会从天而降红包,有些红包是空的(大一点的),抖动的红包里面“有钱”,点击之后会产生相应的交互.   第二部分:预览 所用到的资源:   红包模型 ...

  7. SIMLock锁卡功能解析

    一.锁卡背景介绍 锁卡即SIMLock,当手机开机启动或者插入SIM卡时,手机modem侧预置在NV项中的配置信息会与SIM卡中的信息做比对,检测是否匹配.若匹配,则SIM卡可以正常使用.若不匹配,则 ...

  8. 【ecshop---新增包邮卡功能】

    一:需求分析 项目组要求新增类似虚拟卡的包邮卡,用户获得包邮卡的方式包括后台发送和前台自助充值.包邮卡有使用期限.订单使用包邮卡免除邮费.可以和其他优惠活动同时进行! 二:开发功能点 后台:新增包邮卡 ...

  9. Unity -- 使用easyAR的基础教程

    “三人行,必有我师焉”,抱着共同学习进步的态度,和大家一起交流下EasyAR的用法.有不足的地方,欢迎指出!大家都知道,今年的QQ,支付宝,都用到了AR的技术,扫描一张图片,就会出现虚拟模型,及其想要 ...

随机推荐

  1. 微信小程序开发—快速掌握组件及API的方法

    微信小程序框架为开发者提供了一系列的组件和API接口. 组件主要完成小程序的视图部分,例如文字.图片显示.API主要完成逻辑功能,例如网络请求.数据存储.音视频播放控制,以及微信开放的微信登录.微信支 ...

  2. Zabbix 漏洞分析

    之前看到Zabbix 出现SQL注入漏洞,自己来尝试分析. PS:我没找到3.0.3版本的 Zabbix ,暂用的是zabbix 2.2.0版本,如果有问题,请大牛指点. 0x00 Zabbix简介 ...

  3. phpstorm 配置 xdebug调试工具

    前言   php是脚本型程序 每次出错都要手动exit断点程序不是很方便 哪里有需求哪里就有生产,Xdebug可以实现对php的断点调试.下面将我个人的安装经历分享给大家. 运行环境 windows ...

  4. APP并非一个人在战斗,还有API—Xamarin.Android回忆录

    前言 一般来说,一个客户端APP并非独立存在的,很多时候需要与服务器交互.大体可分为两方面的数据,常规字符串数据和文件数据,因为这两种数据很可能传输方式不一样,比如字符串之类的数据,使用HTTP协议, ...

  5. Nginx学习笔记(二) Nginx--connection&request

    Nginx--connection&request 在Nginx中,主要包括了连接与处理两部分. connection 在src/core文件夹下包含有connection的源文件,Ngx_c ...

  6. 惊心动魄的一上午,感谢eclipse 的文件恢复功能

    昨晚倒腾了半天android 的程序,夜里三点多了,不争气的笔记本由于太热,突然熄火.话说就在昨天还在想着一定要把东西放到svn上,防止文档找不到或者笔记本丢失带来的严重后果.呵呵,就是这么想着,今天 ...

  7. 如何选择靠谱的app外包公司,2017最新资讯

    企业在外包开发app之前最纠结的问题就是如何选择一个靠谱的app外包公司.因为一个靠谱的app外包公司非常重要,完全决定了app外包开发的周期.bug.售后服务等各方面问题,可以说app开发外包团队一 ...

  8. Jmeter正则表达式

    Jmeter正则表达式 文章转自:http://www.cnblogs.com/jamesping/articles/2252675.html 正则表达式可以帮助我们更好的描述复杂的文本格式.一旦你描 ...

  9. Swift3中函数的使用

    前言:前不久,Swift语言也更新到了3.0版本,对编程有一定基础的朋友一定不会对函数这个概念陌生.而Swift语言中的函数也是大同小异的,今天就跟着小编来学习一下Swift3中函数的不一样的用法. ...

  10. 2.Kali安装VMware tools(详细+异常处理)

    dnt@MT:~$ cd /media/cdrom0 进入光驱内 dnt@MT:/media/cdrom0$ ls 查看当前目录下有哪些内容manifest.txt run_upgrader.sh V ...