Vuforia導出的工程中管理攝像頭問題
在以前的篇幅中提到了unity端和iOS端的動態交互。現在出現了一個問題。因為設備上的攝像機是實例化過來的。並且是一個單例。unity雖然已經不再顯示了。但是其實后台還是開啟攝像頭追蹤物體的狀態。如果我們原生中也用到了后置的攝像頭就會出現一個結果那就是崩潰。我們可以通過unity與iOS之間的通訊。去告知unity關閉攝像頭和物體追蹤。
這樣做的好處,不僅不會造成崩潰。對於應用的耗電和CPU的占用上都是一個不小的優化。
直接上CS方法
// 關閉相機
public void CloseCameraDevice ()
{
CameraDevice.Instance.Stop();
CameraDevice.Instance.Deinit();
}
// 打開相機
public void OpenCameraDevice ()
{
CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_DEFAULT);
CameraDevice.Instance.Start();
}
// 關閉識別
public void CloseCloudReco ()
{
CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoBehaviour;
cloudRecoBehaviour.CloudRecoEnabled = false;
}
// 打開識別
public void OpenCloudReco ()
{
CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoBehaviour;
cloudRecoBehaviour.CloudRecoEnabled = true;
}
特此記錄下。。
