Unity系列之EasyAR——ImageTarget

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)
        {
        }
    }
}

 
  

7、设置识别图的path、name、size和资源类型(识别图必须在StreamingAssets文件夹下

path:图片名+后缀

name:图片名



8、将一个或多个游戏物体放入ImageTarget的子级

9、完成,运行!

猜你喜欢

转载自blog.csdn.net/u014805591/article/details/50599524