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

- using UnityEngine;
- using System.Collections;
- public class ZSetactive : MonoBehaviour
- {
- public Transform GreatTransfrom;//脱卡后最佳位置
- public GameObject zhenf;//模型脱卡时存放位置
- public Transform[] TargetTransfrom;//模型在卡片上的最佳位置
- public GameObject[] Target;//卡片
- public GameObject[] zhen;//模型
- void Start ()
- {
- for (int i = 0; i < zhen.Length; i++) {//所有模型初始化全部不显示
- zhen [i].SetActive (false);
- }
- }
- public void tiaozheng ()//模型倾斜时调整最佳位置
- {
- GreatTransfrom.localPosition = new Vector3 (0f,0f,0f);
- GreatTransfrom.localRotation = Quaternion .identity;
- for (int i = 0; i < zhen.Length; i++) {
- zhen [i].transform.localPosition = GreatTransfrom.localPosition ;
- zhen [i].transform.localRotation = GreatTransfrom.localRotation ;
- }
- }
- void Update ()
- {
- WhoShouldShow();//哪个模型应该显示
- TargetT();//有卡片时
- TargetF();//无卡片时
- }
- int index = -1;
- void WhoShouldShow(){//哪个模型应该显示
- // for (int i = 0; i < Target .Length ; i++) {
- // if (Target [i].activeSelf == true) {
- // zhen [i].SetActive (true);
- // index = i ;
- // if (i != index ) {
- // zhen [i].SetActive (false);
- // }
- // }
- // }
- if (Target [0].activeSelf == true) {
- zhen [0].SetActive (true);
- zhen [1].SetActive (false);
- zhen [2].SetActive (false);
- zhen [3].SetActive (false);
- }
- if (Target [1].activeSelf == true) {
- zhen [0].SetActive (false);
- zhen [1].SetActive (true);
- zhen [2].SetActive (false);
- zhen [3].SetActive (false);
- }
- if (Target [2].activeSelf == true) {
- zhen [0].SetActive (false);
- zhen [1].SetActive (false);
- zhen [2].SetActive (true);
- zhen [3].SetActive (false);
- }
- if (Target [3].activeSelf == true) {
- zhen [0].SetActive (false);
- zhen [1].SetActive (false);
- zhen [2].SetActive (false);
- zhen [3].SetActive (true);
- }
- }
- void TargetT(){
- for (int i = 0; i < Target.Length; i++) {//不脱卡
- if (Target [i].activeSelf == true) {
- zhen [i].transform.parent = Target [i].transform;
- zhen [i].transform.position = TargetTransfrom [i].position;
- }
- }
- }
- void TargetF(){//脱卡
- for (int i = 0; i < Target.Length; i++) {
- if (Target [i].activeSelf == false) {
- zhen [i].transform.parent = zhenf.transform;
- zhen [i].transform.localPosition = GreatTransfrom.localPosition;
- }
- }
- }
- }
把这个脚本可以放在一个空物体上面。。
GJM :Unity使用EasyAR实现脱卡功能的更多相关文章
- AR模型脱卡,unity端实现步骤详情
AR模型脱卡unity端实现具体步骤 AR模型脱卡的原理 利用一些unity端AR插件做AR应用.通常会有一个需求,当识别物消失的时候,将3D模型从识别物这个父物体上移除,显示在屏幕中央.那么原理就显 ...
- HP电脑的增霸卡功能操作详解
机房管理中HP电脑的增霸卡功能操作详解 一.软件去除保护 1).电脑开机后等待进入增霸卡选择系统界面: 2).按F1帮助,F10进入增霸卡BIOS界面: 3).光标切换到>>>系统还 ...
- Unity牛逼的2D纹理功能
[Unity牛逼的2D纹理功能] 1.可直接将贴图生成成为Cubemap. 2.自动生成Mipmap. 3.查看纹理被当前场景哪些对象引用.在Project窗口中,右击图像,选择 参考:file:// ...
- 13.56mhz自动寻卡功能业界最低功耗:SI522
随着智能门锁的不断火爆,很多智能门锁产商为了让产品的功耗下降下来,都在不断寻找能自动寻卡的13.56mhz.今天我就为大家推荐一款13.56mhz芯片自动寻卡业界最低功耗,不仅是业界最低另外还完全PI ...
- Unity用Vuforia做AR实现脱卡效果
这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105
- Unity -- 用EasyAR制作出AR红包
第一部分:前言 实现功能:打开APP或运行该demo后,会从天而降红包,有些红包是空的(大一点的),抖动的红包里面“有钱”,点击之后会产生相应的交互. 第二部分:预览 所用到的资源: 红包模型 ...
- SIMLock锁卡功能解析
一.锁卡背景介绍 锁卡即SIMLock,当手机开机启动或者插入SIM卡时,手机modem侧预置在NV项中的配置信息会与SIM卡中的信息做比对,检测是否匹配.若匹配,则SIM卡可以正常使用.若不匹配,则 ...
- 【ecshop---新增包邮卡功能】
一:需求分析 项目组要求新增类似虚拟卡的包邮卡,用户获得包邮卡的方式包括后台发送和前台自助充值.包邮卡有使用期限.订单使用包邮卡免除邮费.可以和其他优惠活动同时进行! 二:开发功能点 后台:新增包邮卡 ...
- Unity -- 使用easyAR的基础教程
“三人行,必有我师焉”,抱着共同学习进步的态度,和大家一起交流下EasyAR的用法.有不足的地方,欢迎指出!大家都知道,今年的QQ,支付宝,都用到了AR的技术,扫描一张图片,就会出现虚拟模型,及其想要 ...
随机推荐
- SAP CRM 性能小技巧
导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比 ...
- 关于SMARTFORMS文本编辑器出错
最近在做ISH的一个打印功能,SMARTFORM的需求本身很简单,但做起来则一波三折. 使用环境是这样的:Windows 7 64bit + SAP GUI 740 Patch 5 + MS Offi ...
- Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)
示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...
- Oracle 10g安装教程
首先下载安装文件,打开后文件结构如图所示: 安装之前请关闭Windows防火墙并断开网络. xp系统下直接双击运行(本经验以XP系统安装为例进行讲述). 如果是在win7上安装,如图:在setup文件 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- mysql集群(主从)
本文主要记录mysql 主从配置. 经典的原理图 0.环境: 采用阿里云ECS服务器,同区同配置,操作系统为ubuntus 14 64位,服务器如下: 服务器A: 内网IP: 10.44.94.219 ...
- ASP.NET MVC防范CSRF最佳实践
XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...
- 快速web开发中的前后端框架选型最佳实践
这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相 ...
- SAE+WordPress快速搭建个人博客
前些天一时冲动,买了个域名,我想总不能放着不用吧,干脆就搭建了一个个人博客.下面我把搭建的过程分享给大家.注意,此文并不是攻略,只是为了记录下这个从无到有的过程,当然,假如解决了你的疑惑,那当然是极好 ...
- Atitit 常用二维码对比(QR、PDF417、DM、汉信码 Aztec code maxicode
Atitit 常用二维码对比(QR.PDF417.DM.汉信码 Aztec code maxicode DM码则更"小",可在仅仅25mm²的面积上编码30个数字.但也就是因为太小 ...