close

box2.jpeg

vuforia frame markers提供512組定義好的辯識物可以直接使用,不需要在vuforia後台製作,但是需要將FrameMarker這東西拉到場景上並且設定好ID.但是這次筆者需要使用512組總不能一個一個拉吧!

於是就動態生成吧!經過測試可以在ANDROID跟IOS使用,請注意markerTracker = (MarkerTracker)TrackerManager.Instance.GetTracker<MarkerTracker>();

markerTracker只有build出來才不是空的窩

CODE如下:


using UnityEngine;
using System.Collections;
using Vuforia;

public class FrameManager :MonoBehaviour
{
    // 動態新增FrameMark只有build出來才有效,BuildFrameMark才不是空的
    MarkerTracker markerTracker;
    void Start () 
    {
        #if !UNITY_EDITOR

        Debug.Log("FrameManager 14");
        markerTracker = (MarkerTracker)TrackerManager.Instance.GetTracker<MarkerTracker>();
        for(int i=0;i<512;i++)
        {
            BuildFrameMark(i);
        }

        #endif

    }

    void BuildFrameMark(int iMarkID)
    {
        MarkerAbstractBehaviour aMarkerAbstractBehaviour=markerTracker.CreateMarker(iMarkID, "Mark "+iMarkID.ToString(), 100);
        //Debug.Log("FrameManager 17="+aMarkerAbstractBehaviour.GetInstanceID());
        aMarkerAbstractBehaviour.gameObject.AddComponent<DefaultTrackableEventHandler>();
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.parent = aMarkerAbstractBehaviour.transform;
        cube.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
        cube.transform.localPosition = new Vector3(0.0f, 0.25f, 0.0f);

    }
}

參考

https://developer.vuforia.com/forum/unity-extension-technical-discussion/1-arcamera-and-1-dynamic-frame-marker

 

arrow
arrow
    全站熱搜

    GABY 發表在 痞客邦 留言(0) 人氣()