「这是我参与2022首次更文挑战的第28天,活动详情查看:2022首次更文挑战」
EasyAR引擎简介
EasyAR是好用且免费的增强现实(Augmented Reality)引擎.EasyAR为Unity开发和本地开发提供了大量可直接运行的样例。 这些样例演示了各种target的创建方式和包含流媒体和透明视频在内的视频播放,以及更加高级的实时target创建和AR涂涂乐。
EasyAR自问世以来从未停止向前演进,自首个公开发布版本以来的主要更新内容如下,
增加更多完整实例 增加多目标跟踪支持 优化降低功耗 移除Unity对Visual C++运行时库的依赖 提升跟踪稳定性和准确性 改善首次使用体验 改善视频播放支持,增加透明视频支持 改善前置摄像头和动态摄像头切换 改善Unity支持和兼容性 改善Unity接口 EasyAR的优势
EasyAR支持使用平面目标的AR,支持1000个以上本地目标的流畅加载和识别,支持基于硬解码的视频(包括透明视频和流媒体)的播放,支持二维码识别,支持多目标同时跟踪。
EasyAR支持PC和移动设备等多个平台,EasyAR不会显示水印,也没有识别次数限制。
EasyAR下载 官网下载 www.easyar.cn/
1,在官网注册账号,然后申请应用Key,
登录到EasyAR平台后,进入开发导航菜单,点击创建应用(添加SDK license Key)设置完成后打开如下图:
2,新建项目将EasyAR插件导入游戏场景中,将Prefabs文件夹中的EasyAR_Startup,拖拽到游戏场景中,并在Inspector面板中设置上面申请的Key值,设置如下图:
EasyAR_Startup,这个prefab作为一个简单的组合提供,对于通常的AR场景来说也是足够的。你可以使用EasyAR提供的其它小型prefab构建一个更加复杂的AR场景。
2,新建游戏对象ImageTarget,并创建一个名为MyEasyARImageTarget.cs的代码文件,挂载到ImageTarget上
using EasyAR;
using UnityEngine;
public class MyEasyARImageTarget : ImageTargetBehaviour {
protected override void Awake()
{
base.Awake();
TargetFound += OnTargetFound;
TargetLost += OnTargetLost;
TargetLoad += OnTargetLoad;
TargetUnload += OnTargetUnload;
}
/// <summary>
/// 当扫描到图片是做的事情
/// </summary>
void OnTargetFound(TargetAbstractBehaviour behaviour)
{
Debug.Log("发现: " + Target.Id);
}
/// <summary>
/// 当前扫描图图片移动开
/// </summary>
void OnTargetLost(TargetAbstractBehaviour behaviour)
{
Debug.Log("丢失: " + Target.Id);
}
/// <summary>
/// 加载目标时执行
/// </summary>
void OnTargetLoad(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
{
Debug.Log("加载目标 (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
}
/// <summary>
/// 卸载时执行
/// </summary>
void OnTargetUnload(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
{
Debug.Log("卸载目标 (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
}
}
3,在MyEasyARImageTarget组件上,设置相关参数,如下图:
注意StreamingAssets是特殊文件夹,图片一定要在该目录下:
面板属性说明: Path:是需要识别图片的路径 Name:是图片名称 ActiveTargetOnStart:是否在MonoBehavior.Start被调用时加载target Storage:target存储位置的类型 Size:改变可物体的大小
Storage类型说明:
然后将要展示的3D游戏物体放在ImageTarget下(作为其子物体存在),,注意调整大小和位置一遍扫描时查看,,
最后在发布设置的时候:此名称和网站上最初设定的名称要一致,,(即和博文第一张图上名称对应)即
EasyARDemo案例: github.com/Czhenya/Eas…