代碼就這幾句,但是如果Vuforia沒有初始化完成就調用會崩潰。
// 設置攝像頭自動調焦
var isSuccessful = Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
// 打開閃光燈 true
Vuforia.CameraDevice.Instance.SetFlashTorchMode(true);
// 關閉閃光燈 false
Vuforia.CameraDevice.Instance.SetFlashTorchMode(false);
// 相機停止影像
Vuforia.CameraDevice.Instance.Stop();
// 相機開始攝取影像
Vuforia.CameraDevice.Instance.Start();
// 開始跟蹤目標(開始識別)
Vuforia.TrackerManager.Instance.GetTracker<Vuforia.ObjectTracker>().Start();
// 停止跟蹤目標(停止識別)
Vuforia.TrackerManager.Instance.GetTracker<Vuforia.ObjectTracker>().Stop();
// 啓動Vuforia
GameObject.Find("ARCamera").GetComponent<Vuforia.VuforiaBehaviour>().enabled = true
// 關閉Vuforia
GameObject.Find("ARCamera").GetComponent<Vuforia.VuforiaBehaviour>().enabled = false
// 打開前置攝像頭(Vuforia在未來版本中將會棄用這種方法)
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_FRONT);
Vuforia.CameraDevice.Instance.Start();
// 打開後置攝像頭
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_BACK);
Vuforia.CameraDevice.Instance.Start();
// 打開默認的攝像頭
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_DEFAULT);
Vuforia.CameraDevice.Instance.Start();
爲了確保代碼不會崩潰,可以在調用上面的代碼前檢查是否可用:
// 操作相機前檢查相機是否在活動(相機Stop後或Vuforia未初始化完成,該函數返回false)
Vuforia.CameraDevice.Instance.IsActive()
// 操作跟蹤識別前檢查Vuforia是否完成了初始化
Vuforia.VuforiaManager.Instance.Initialized
這裏提供一個小demo,如下是在手機上運行的結果: