unity開發(fā)arkit過程中有個bug,每次在ar場景中進入到其他場景然后回到有ar場景中的時候ar場景會變混亂,我初始化了ar場景里面的東西濒旦,但是之前掃描的平面還在纫谅,并且會到處跑動炫贤,經(jīng)過多處排查,在Assets/Plugins/ios/UnityARkit/UnityARCamerManager.cs這個文件中有這樣一段斷碼
void Start(){
m_session = UnityARSessionNativeInterface.GetARSessionNativeInterface();
#if !UNITY_EDITOR
Application.targetFrameRate = 60;
ARKitWorldTackingSessionConfiguration config = new ARKitWorldTackingSessionConfiguration();
config.planeDetection = UnityARPlaneDetection.Horizontal;
config.alignment = UnityARAlignment.UnityARAlignmentGravity;
config.getPointCloudData = true;
config.enableLightEstimation = true;
m_session.RunWithConfig(config);
if(m_camera == null){
m_camera = Camera.main;
}
#else
........
#endif
}
重點可以看到的是雖然每次初始化arkit的congfig系宜,但是并沒有將之前掃描的點移除掉照激,這樣我改成
UnityARSessionRunOption runOptions = UnityARSessionRunOption.ARSessionRunOptionRemoveExistingAnchors | UnityARSessionRunOption.ARSessionRunOptionResetTracking;
ARKitWorldTackingSessionConfiguration sessionConfig = new ARKitWorldTackingSessionConfiguration(UnityARAlignment.UnityARAlignmentGravity,UnityARPlaneDetection.Horizontal);
UnityARSessionNativeInterface.GetARSessionNativeInterface().RunWithConfigAndOptions(sessionConfig,runOptions);
進入其他的場景回來再掃描,之前的東西沒有了盹牧,并且可以再次掃描一個平臺