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
留言列表