EasyAR(一)——显示模型
一、开发环境:unity5.6.0,EasyAR2.1
二、导入SDK
1.安装unity并被配置androidSDK跟javaJDK路径(见博客环境配置)
2.从EasyAR官网下载EasyAR(这里下载的是EasyAR2.0)下载网址http://www.easyar.cn/view/download.html
3.新建unity项目,命名随意
4.将下载的EasyAR文件解压,解压之后有一个文件夹和一个pakage包,将EasyAR_SDK_2.1.0_Basic.unitypackage
导入至建好的unity项目中,效果如图:
三、配置识别图
1.在unity里新建一个目录,命名为"StreamingAssets",准备一张需要识别的图片(格式最好为jpg),拖入StreamingAssets文件夹中,给图片命名为“idback”
2.EasyAR Target配置
详见官网http://www.easyar.cn/doc/EasyAR%20SDK/Guides/EasyAR-Target-Configure.html
在StreamingAssets目录下新建一个json文件,命名为“targets”这里格式如下:
{"images" :[{"image" : "idback.jpg","name" : "idback","size" : [8.56, 5.4],"uid" : "uid-string, should NOT duplicate","meta" : "what ever string you like."}]
}
四、获取key
1.进入官网http://www.easyar.cn/view/open/app.html申请key
2.点击创建应用,应用名称输入你的项目名字,bundleid(package name)处填写 .com+playersettings处的CompanyName+playersettings处的ProductName
2.填入完成后确定即可查看我们需要的key
3.按你用的EasyAR版本选择查看key,这里用的2.1所以
4.复制此处的key
五、开发
1.回到刚刚创建的unity项目中,删除原有场景中的MainCamera,然后从EasyAR->Prefabs将预制件EasyAR_Startup拖入到Hierarchy面板
2.将刚刚复制的key黏贴到"EasyAR_Startup"中
3.从EasyAR->Prefabs->Primitives中的预制件ImageTarge拖入到Hierarchy面板中
4.编辑挂在ImageTarget组件上的“ImageTargetBehaviour”脚本(这个段脚本的主要功能是当捕捉到识别图时控制模型的显示与消失),在这里我直接移除了ImageTargetBehaviour,新建了个脚本继承ImageTargetBehaviour(单纯因为新建个脚本看着比较开心,这个看个人习惯是直接在上面编辑还是新建个脚本),具体内容如下:
namespace EasyAR
{public class TargetDemo : ImageTargetBehaviour{protected override void Awake(){base.Awake();TargetFound += OnTargetFound;TargetLost += OnTargetLost;TargetLoad += OnTargetLoad;TargetUnload += OnTargetUnload;}protected override void Start(){base.Start();// HideObjects(transform);//TargetAbstractBehaviour.GameObjectActiveControl = false;}//void HideObjects(Transform trans)//{// for (int i = 0; i < trans.childCount; ++i)// HideObjects(trans.GetChild(i));// if (transform != trans)// gameObject.SetActive(false);//}//void ShowObjects(Transform trans)//{// for (int i = 0; i < trans.childCount; ++i)// ShowObjects(trans.GetChild(i));// if (transform != trans)// gameObject.SetActive(true);//}private void OnTargetLost(TargetAbstractBehaviour obj){GameObjectActiveControl = true;Debug.Log("Found: " + Target.Id);}private void OnTargetFound(TargetAbstractBehaviour obj){GameObjectActiveControl = false;Debug.Log("Lost: " + Target.Id);}void OnTargetLoad(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status){Debug.Log("Load target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);}void OnTargetUnload(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status){Debug.Log("Unload target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);}}
}
因为EasyAR的版本不一样,API接口可能不太一样,2.1是不需要去写显示跟隐藏的方法了,直接通过控制GameObjectActive的值来显示隐藏模型,其他版本可能需要写显示隐藏方法,显示隐藏方法,我在上面注释了,具体关于API问题可以去查看每个版本的配置EasyAR Unity SDK文档,例如EasyAR2.1查看地址为: http://www.easyar.cn/doc/EasyAR%20SDK/Getting%20Started/2.0/Setting-up-EasyAR-Unity-SDK.html
EasyAR1.0查看地址为:http://www.easyar.cn/doc/EasyAR%20SDK/Getting%20Started/1.0/Setting-up-EasyAR-Unity-SDK.html
5.在Hierarchy面板放入你需要显示的模型,并设成ImageTargert的子物体,然后将模型的transform reset
6.在Inspector面板填写ImageTarget信息
按json文件填入配置path、name、size
注意:Storage处需要修改为Assets
新建个材质球,将识别图idback复制另存一份png格式图(不用放在StreamAssets文件夹),作为贴图放入材质球,将材质球放入如下图地方
六、测试
1.将当前场景保存
2.File->BuildSettings,将保存场景拖入BuildSettings面板中,确定面板如下
保证框选区域如图(场景名不必一样),确定无误后,点击PlayeSettings,按照申请key时填入的信息填入下面
Package Name:填入申请key时的BundleID
Company Name:与申请Key时的公司或团队名相同,就是.com中间那个
Product Name:与申请key时填入的应用名相同,就是.com末尾那个
最后需要设置GraphicAPI,unity4.x跟unity5.x设置是不一样的
unity4.x:将Graphic设置为force Open GL ES 2.0,Graphics API设置为 Open GL ES 2.0(没有4.x没有截图)
unity5.x:如下图
最后build生成app,放到手机安装测试就可以了
EasyAR(一)——显示模型相关推荐
- Unity+EasyAR4.1.0.811包,实现手机扫描图片显示模型(安卓手机)
文章目录 一.关于EasyAR 1.搞Key 2.下载EasyAR包 二.Unity项目发布成Android手机apk文件 1.由PC平台切换到Android平台 2.下载并安装AndroidSDK ...
- unity_AR(一) 安卓手机无法显示模型和无法播放动画问题
这个星期学习了unity制作MMD动画打包成apk到手机上发现了发现了两个问题 一: 手机无法显示MMD插件渲染的贴图,导致安装到手机上后无法显示模型 解决方法: 把材质球的shader改成这样: t ...
- three.js 导入显示模型的时候自动计算模型缩放比例
three.js 导入显示模型的时候自动计算模型缩放比例 导入模型(以.stl文件为例),项目是用vue 做的,如果是html就把_this去掉 var _this = this; var loade ...
- Zk中组建显示模型mold都有哪些
Zk中组建显示模型mold都有哪些? zk大部份组建都有一个mold属性,此为显示模型,显示模型类似windows主题.网站主题等 例如组 tabbox组建,有default mold和手风琴acco ...
- unity结合MMD发布android不显示模型不播放动画问题解决方法
今天在将MMD与unity结合,制作Easy AR的时候. 在PC端,模型可以正常显示,但是发布Android后,遇到了两个问题: MMD模型无法显示 MMD模型显示后,不能正常播放动作. 首先,我们 ...
- 【Unity3D-UGUI应用篇】(四)使用UGUI弹窗显示模型及弹窗模型交互
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...
- 关于EasyAR识别出模型后出现剧烈抖动,以及位置发生偏移
关于EasyAR识别出模型后出现剧烈抖动,以及位置发生偏移 我看了网上的博客,作用并不是很大,但是对于AR项目,模型出现抖动,位置发生偏移,这些都是大忌,对于这个问题只需要调整 CameraDevic ...
- 【EasyAR学习】显示模型
一.开发环境 到EasyAR官网(https://www.easyar.cn/view/download.html#download-nav1)下载EasyAR的SDK,目前官网上发布的最新版本是2. ...
- ROS2-rviz2显示模型
rviz2显示机器人模型 URDF 不能单独使用,需要结合 Rviz 或 Gazebo,URDF 只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,当前,首先演示URDF与 ...
- css 标签显示模型 盒子模型 浮动 背景属性
标签显示模式(display) 块级元素(block-level) 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属性,常用于网页布局和网页结构的搭建. 常见的块元素有< ...
最新文章
- python视频抽帧 后 前端javascript如何显示_python通过ffmgep从视频中抽帧的方法
- REST service 化一个数据系统(REST Service 的最佳实践,第 2 部分)
- caxa电子图板2018中文版
- cfnet用于嵌入式_做嵌入式驱动的,你一定要挺住!
- Jquery中使用setInterval和setTimeout
- firewalld/iptables防火墙维护和状态查询命令(防火墙重载,区域操作命令,开启服务或端口,堵塞端口,iptables规则添加和删除)
- Deeplab 在Qt Creator下编译报错undefined reference to Mat_xxx
- dao层mysql复合语句_在业务中是使用多个Dao组合好,还是一个链接查询好?
- 瑞友天翼 v5.1.0.6 远程打印跳行、跳页、错位问题解决方法
- 计算机网络基础知识 - 物理层
- 英文视频字幕自动生成
- java继承和接口的区别_java中的接口与继承的区别
- git生成sshkey 并添加SSH key
- (转)iPhone +ipad尺寸规范(界面 图标)
- ios UIImageView 部分圆角(加上 borderWidth、borderColor 效果修复)
- Simon Phipps是开源计划总裁
- 马云谈加班、996看法
- scylladb 4.1 分布式安装部署
- 内网穿透,让自己的电脑当服务器
- Godot着色器语言