EasyAR SDK在unity中的简单配置及构建一个简单场景。
2016-02-01 15:26
417 查看
首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面。
MyImageTargetBehaviour.cs
为场景中的EasyAR添加MyEasyARBehaviour脚本,同时移除ImageTarget自带的ImageTargetBehaviour脚本组件,用我们写的MyImageTargetBehaviour组件代替。
我们将网站上获取的key填入MyEasyARBehaviour脚本组件相应的key一栏中即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/5117de04487780700302333fd40e0ad7.png)
*随后我们准备一个识别图和对应的模型。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/33a4489909a9ce25a4b674f95e47fdbf.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/dc4b23142a6d2dead372dc80685c2bde.jpg)
在project窗口新建Texture,StreamingAssets文件夹,分别将识别图lingzhou.jpg导入。新建一个Material名为Mat,将其shader改为Legacy Shaders/Diffuse,用Texture文件夹的lingzhou.jpg作为贴图,再将其赋予场景中的Image Target实例。这是为了在场景中对识别图可视化而进行的操作。而StreamingAssets里的lingzhou.jpg则用作实时比对,需要在Image Target实例的MyImageTargetBehaviour脚本组件处填写相应路径以及识别图的尺寸,如图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/790f09e0abfe4a9fd76573a87bcf80fd.png)
将准备好的模型拖入场景,调整好位置,大小,角度之后将其作为ImageTarget的子物体即可。最终场景如图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/a33f19ddfcf8b1f98f3a9dc3a84841d2.png)
打包成apk在手机上运行的效果如图,一个萌妹子跃然纸上。
using UnityEngine; 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.childCount; ++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.childCount; ++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一栏中即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/5117de04487780700302333fd40e0ad7.png)
*随后我们准备一个识别图和对应的模型。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/33a4489909a9ce25a4b674f95e47fdbf.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/dc4b23142a6d2dead372dc80685c2bde.jpg)
在project窗口新建Texture,StreamingAssets文件夹,分别将识别图lingzhou.jpg导入。新建一个Material名为Mat,将其shader改为Legacy Shaders/Diffuse,用Texture文件夹的lingzhou.jpg作为贴图,再将其赋予场景中的Image Target实例。这是为了在场景中对识别图可视化而进行的操作。而StreamingAssets里的lingzhou.jpg则用作实时比对,需要在Image Target实例的MyImageTargetBehaviour脚本组件处填写相应路径以及识别图的尺寸,如图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/790f09e0abfe4a9fd76573a87bcf80fd.png)
将准备好的模型拖入场景,调整好位置,大小,角度之后将其作为ImageTarget的子物体即可。最终场景如图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/a33f19ddfcf8b1f98f3a9dc3a84841d2.png)
打包成apk在手机上运行的效果如图,一个萌妹子跃然纸上。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/04/add1631af9baf97f06ae262cfdc23a16.jpg)
相关文章推荐
- Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
- Unity5.0内置Shader解析
- Unity5.3.x带Rotation关键帧动画模型 移动平台运行时模型消失 PC正常
- zzUnity内存申请和释放
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
- Unity3d中BlinnPhong光照模型注解
- Unity3D命令行Build
- Unity3D使用经验总结 优点篇
- unity3d优化总结篇
- Unity3D性能优化
- Unity3D的几种坐标系
- Unity3D 内存 释放
- Unity Development with VS Code
- 使用unity实现顿帧,大大提升打击感
- 转载Unity地形编辑
- unity3d事件函数整理,事件,回调函数,消息处理
- Unity 获取Android手机返回键Home按键信息
- Unity拖动物体代码
- unity document web link
- Unity 关于CombineMeshes的一点使用心得