您的位置:首页 > 移动开发 > Unity3D

EasyAR SDK在unity中的简单配置及构建一个简单场景。

2016-02-01 15:26 417 查看
首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面。

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一栏中即可。



*随后我们准备一个识别图和对应的模型。





在project窗口新建Texture,StreamingAssets文件夹,分别将识别图lingzhou.jpg导入。新建一个Material名为Mat,将其shader改为Legacy Shaders/Diffuse,用Texture文件夹的lingzhou.jpg作为贴图,再将其赋予场景中的Image Target实例。这是为了在场景中对识别图可视化而进行的操作。而StreamingAssets里的lingzhou.jpg则用作实时比对,需要在Image Target实例的MyImageTargetBehaviour脚本组件处填写相应路径以及识别图的尺寸,如图所示:



将准备好的模型拖入场景,调整好位置,大小,角度之后将其作为ImageTarget的子物体即可。最终场景如图所示:



打包成apk在手机上运行的效果如图,一个萌妹子跃然纸上。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: