Unity系列之EasyAR——ImageTarget

增强现实 EasyAR——ImageTarget

很多开发人员第一次接触EasyAR的时候不知该从何入手,下面就带领完成一个EasyAR的案例

1、打开Unity新建一个项目工程

2、导入EasyAR v1.1.0版本

3、将准备好的识别图放入StreamingAssets文件夹下(如果没有,就新建一个,文件夹名称务必相同)

4、将预设EasyAR和ImageTarget分别拖入场景

5、新建脚本,输入以下代码(挂在EasyAR上)

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)

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:图片名


Unity系列之EasyAR——ImageTarget_第1张图片

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

9、完成,运行!

你可能感兴趣的:(VR,&,AR)