1. 程式人生 > >【EasyAR學習】多圖識別

【EasyAR學習】多圖識別

1、新建unity專案,將EasyAR_SDK_2.2.0_Basic.unitypackage包匯入到unity3D中。

匯入unitypackage包後,會在Project面板看到如下圖所示的資料夾。


2、在unity中新建一個資料夾“StreamingAssets”,用來存放識別圖片。


3、刪除Main Camera,並將AR相機----EasyAR_ImageTracker-1-MultiTarget拖入到Hierarchy面板中。


4、在EasyAR_ImageTracker-1-MultiTarget的Insepctor面板填寫Key 值(將之前在官網建立的Key複製到這裡)。


5、在”Assets→MultiTarget→Scripts”資料夾下新建一個C#指令碼"MultiTarget.cs"用來處理EasyAR 的多圖識別功能,編譯成功後將這個指令碼掛載到"EasyAR_ImageTracker-1-MultiTarget" 元件上,,指令碼程式碼如下。

using UnityEngine;
using EasyAR;

public class MultiTarget : MonoBehaviour {

    private const string title = "Please enter KEY first!";
    private const string boxtitle = "===PLEASE ENTER YOUR KEY HERE===";
    private const string keyMessage = ""
        + "Steps to create the key for this sample:\n"
        + "  1. login www.easyar.com\n"
        + "  2. create app with\n"
        + "      Name: MultiTarget(Unity)\n"
        + "      Bundle ID: com.nuangyang.MultiTarget\n"
        + "  3. find the created item in the list and show key\n"
        + "  4. replace all text in TextArea with your key";

    private void Awake()
    {
        if (FindObjectOfType<EasyARBehaviour>().Key.Contains(boxtitle))
        {
#if UNITY_EDITOR
            UnityEditor.EditorUtility.DisplayDialog(title, keyMessage, "OK");
#endif
            Debug.LogError(title + " " + keyMessage);
        }
    }
}

6、然後,將ImageTarget 預製體拖入到Hierarchy面板中去。


7、修改 ImageTarget 上掛載的ImageTargetBehaviour.cs 指令碼,這裡我直接將掛載的ImageTargetBehaviour.cs 指令碼刪除了,然後在Assets資料夾下新建了“Assets→MultiTarget→Scripts→SampleImageTargetBehaviour.cs”指令碼,該指令碼繼承於ImageTargetBehaviour,程式碼在“【EasyAR學習】顯示模型”的部落格中有,此指令碼的作用就是控制模型識別後的顯示,編譯執行成功後,將SampleImageTargetBehaviour.cs掛載到ImageTarget上。

8、在Inspector面板填寫SampleImageTargetBehaviour資訊:(注意,一定要將Storage 的格式修改為Assets)
Path: 識別圖的路徑

Name:識別圖的名字

Size:識別圖的大小


9、再拖一個ImageTarget 預製體到Hierarchy面板中去,將SampleImageTargetBehaviour.cs掛載到ImageTarget(1)上,並填寫Inspector面板上SampleImageTargetBehaviour的資訊:


下面是識別圖片idback.jpg和namecard.jpg。

            

10、新建2個材質球,將識別圖idback.jpg和namecard.jpg分別作為貼圖放入材質球,將材質球放入如下圖地方。

               

                          

11、在Hierarchy面板放入你需要顯示的模型,並設成ImageTargert的子物體,然後修改模型的transform 。


     

12、儲存場景,並執行,執行結果如圖所示。