easyar 3d追踪用下unity 3D吗?

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 854|回复: 1
EasyAR SDK在unity中的简单配置及构建一个简单场景。
288/150排名<font color="#FF昨日变化5主题帖子积分
初来乍到, 积分 88, 距离下一级还需 62 积分
初来乍到, 积分 88, 距离下一级还需 62 积分
在线时间9 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 变形金钢 于
12:21 编辑
首先打开EasyAR的官方网站/index.html,注册登陆之后,打开首页的开发页面。
1.png (33.63 KB, 下载次数: 0)
11:53 上传
下载sdk和Unity Samples。
创建一个工程NewAR,导入sdk解压目录中的EasyAR.unitypackage。
接下来回到EasyAR的官方网站,进入开发页面,点击创建应用。输入应用程序名称及包名。
57-.png (32.84 KB, 下载次数: 0)
11:54 上传
04-.png (24.6 KB, 下载次数: 0)
11:55 上传
就如图所示生成了应用的key。
4.png (30.73 KB, 下载次数: 0)
11:56 上传
回到unity,创建一个新的场景start并保存,删除场景中的MainCamera。打开file-&Build Settings,添加当前场景,并进入发布的Player Settings。将Other Settings-&Identification-&Bundle Identifier一栏的包名改为我们在网站上注册时填写的包名。同时将Other Settings-&Rendering的Auto Graphics API的勾取消,删除OpenGLES3.0.
5.png (29.79 KB, 下载次数: 0)
11:57 上传
之后就可以开始正式编辑了。首先向场景中拖入EasyAR-&Prefab目录下的EasyAR.prefab与ImageTarget.prefab。之后开始我们的脚本编辑工作。创建MyEasyARBehaviour.cs脚本,这个脚本的主要功能为初始化key并对ImageTarget的载入做出相应的响应。
[C#] 纯文本查看 复制代码using UnityE
namespace EasyAR
public class MyEasyARBehaviour : MonoBehaviour, ITargetEventHandler
[TextArea(1, 10)]//为key在unity编辑面板的最小行数及最大行数设定
public string K//输入的key
private void Awake()
ARBuilder.Instance.InitializeEasyAR(Key);//用key去初始化EasyAR
ARBuilder.Instance.EasyBuild();
/*遍历trackerBehaviour脚本组件,这个trackerBehaviour组件继承自TrackerBaseBehaviour。
ImageTargetBaseBehaviour必须先被加载到TrackerBaseBehaviour中它内部的target才能被跟踪。所以在做多目标识别时,每一个
ar物体都要加载一个trackerBehaviour组件,因此在这里进行遍历。
foreach (var trackerBehaviour in ARBuilder.Instance.TrackerBehaviours)
trackerBehaviour.RegisterTargetEventHandler(this);
// 以下的代码是对ITargetEventHandler接口的重写
void ITargetEventHandler.OnTargetFound(Target trackable)//target找到事件。
Debug.Log(&&Global Handler& Found: & + trackable.Id);
void ITargetEventHandler.OnTargetLost(Target trackable)//target丢失事件。
Debug.Log(&&Global Handler& Lost: & + trackable.Id);
void ITargetEventHandler.OnTargetLoad(Target trackable, bool status)//target加载结束事件。如果加载成功status为true否则为false。
Debug.Log(&&Global Handler& Load target (& + status + &): & + trackable.Id + & -& & + trackable.Name);
void ITargetEventHandler.OnTargetUnload(Target trackable, bool status)//target卸载结束事件。如果卸载成功status为true否则为false。
Debug.Log(&&Global Handler& Unload target (& + status + &): & + trackable.Id + & -& & + trackable.Name);
MyEasyARBehaviour.cs
接下来让我们打开EasyAR-&Scripts目录,我们所要编写的脚本主要都是基于sdk目录里的这几个脚本。这里我们编写一个MyImageTargetBehaviour.cs脚本继承于该目录里的ImageTargetBehaviour脚本。代码如下:
[C#] 纯文本查看 复制代码using UnityE
namespace EasyAR
public class MyImageTargetBehaviour : ImageTargetBehaviour, ITargetEventHandler
protected override void Start()
base.Start();
HideObjects(transform);
/// &summary&
/// 依次隐藏ImageTarget的子物体
/// &/summary&
/// &param name=&trans&&&/param&
void HideObjects(Transform trans)
for (int i = 0; i & trans.childC ++i)
HideObjects(trans.GetChild(i));
if (transform != trans)
gameObject.SetActive(false);
/// &summary&
/// 依次显示ImageTarget的子物体
/// &/summary&
/// &param name=&trans&&&/param&
void ShowObjects(Transform trans)
for (int i = 0; i & trans.childC ++i)
ShowObjects(trans.GetChild(i));
if (transform != trans)
gameObject.SetActive(true);
// 以下的代码是对ITargetEventHandler接口的重写
void ITargetEventHandler.OnTargetFound(Target target)
ShowObjects(transform);
Debug.Log(&Found: & + target.Id);
void ITargetEventHandler.OnTargetLost(Target target)
HideObjects(transform);
Debug.Log(&Lost: & + target.Id);
void ITargetEventHandler.OnTargetLoad(Target target, bool status)
Debug.Log(&Load target (& + status + &): & + target.Id + & -& & + target.Name);
void ITargetEventHandler.OnTargetUnload(Target target, bool status)
Debug.Log(&Unload target (& + status + &): & + target.Id + & -& & + target.Name);
MyImageTargetBehaviour.cs
为场景中的EasyAR添加MyEasyARBehaviour脚本,同时移除ImageTarget自带的ImageTargetBehaviour脚本组件,用我们写的MyImageTargetBehaviour组件代替。
我们将网站上获取的key填入MyEasyARBehaviour脚本组件相应的key一栏中即可。
6.png (49.66 KB, 下载次数: 0)
12:06 上传
*随后我们准备一个识别图和对应的模型。
79-.jpg (40.26 KB, 下载次数: 4)
12:07 上传
16-.jpg (32.58 KB, 下载次数: 1)
12:07 上传
在project窗口新建Texture,StreamingAssets文件夹,分别将识别图lingzhou.jpg导入。新建一个Material名为Mat,将其shader改为Legacy Shaders/Diffuse,用Texture文件夹的lingzhou.jpg作为贴图,再将其赋予场景中的Image Target实例。这是为了在场景中对识别图可视化而进行的操作。而StreamingAssets里的lingzhou.jpg则用作实时比对,需要在Image Target实例的MyImageTargetBehaviour脚本组件处填写相应路径以及识别图的尺寸,如图所示:
11.png (16.42 KB, 下载次数: 0)
12:08 上传
将准备好的模型拖入场景,调整好位置,大小,角度之后将其作为ImageTarget的子物体即可。最终场景如图所示:
12.png (315.25 KB, 下载次数: 0)
12:09 上传
打包成apk在手机上运行的效果如图,一个萌妹子跃然纸上。
WtG%%P0@ALLLZKPXOPB1R.jpg (51.79 KB, 下载次数: 0)
12:13 上传
一套简单的rbj游戏工程文件;unity要求配置;unity的配置;unity 配置
每日推荐:
72654/5000排名49昨日变化主题帖子积分
日久生情, 积分 2654, 距离下一级还需 2346 积分
日久生情, 积分 2654, 距离下一级还需 2346 积分
蛮牛币7461
在线时间535 小时
再发一些教程啊
每日推荐:更多公众号:unity3dno1本订阅号主要是用于个人的Unity3d手游学习历程,将会与您分享我的学习经历以及经验等等最新文章相关作者文章搜狗:感谢您阅读EasyAR 本文版权归原作者所有,本文由网友投递产生,如有侵权请联系 ,会第一时间为您处理删除。EasyAR使用必读_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
EasyAR使用必读
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 easyar unity教程 的文章

 

随机推荐