版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014805591/article/details/50599524
</pre>增强现实 <span style="font-weight:normal">EasyAR——ImageTarget</span></h1><h2>很多开发人员第一次接触EasyAR的时候不知该从何入手,下面就带领完成一个EasyAR的案例</h2><h2>1、打开Unity新建一个项目工程</h2><h2>2、导入EasyAR v1.1.0版本</h2><h2>3、将准备好的识别图放入StreamingAssets文件夹下(如果没有,就新建一个,文件夹名称务必相同)</h2><h2>4、将预设EasyAR和ImageTarget分别拖入场景</h2><div><img src="https://img-blog.csdn.net/20160128115415740?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></div><div></div><div><img src="https://img-blog.csdn.net/20160128115602660?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></div><div></div><h2>5、新建脚本,输入以下代码(挂在EasyAR上)</h2><div><pre name="code" class="csharp">using UnityEngine;
using System.Collections;
using EasyAR;
public class ARIsEasyBehaviour : MonoBehaviour,ITargetEventHandler {
[TextArea(1,10)]
public string key;
void Awake()
{
ARBuilder.Instance.InitializeEasyAR(key);
ARBuilder.Instance.EasyBuild();
foreach (var trackerBehaviour in ARBuilder.Instance.TrackerBehaviours)
trackerBehaviour.RegisterTargetEventHandler(this);
}
public void OnTargetFound(Target trackable)
{
}
public void OnTargetLoad(Target trackable, bool status)
{
}
public void OnTargetLost(Target trackable)
{
}
public void OnTargetUnload(Target trackable, bool status)
{
}
}
输入官网提供的key键值,官网地址:http://www.easyar.cn/index.html
6、新建脚本,输入以下代码(挂在ImageTarget)
<pre name="code" class="csharp">using UnityEngine;
namespace EasyAR
{
public class EasyImageTargetBehaviour : ImageTargetBehaviour, ITargetEventHandler
{
protected override void Start()
{
base.Start();
HideObjects(transform);
}
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);
}
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)
{
}
void ITargetEventHandler.OnTargetUnload(Target target, bool status)
{
}
}
}