public void SaveLocalMarkerThread(Marker marker, bool isRecognitionManagerRunning, bool replace, string appdatapath, bool sync_after_save) { if (replace || !File.Exists(appdatapath + "markers/" + marker.markerId + ".dat")) { string dstMarkerPath = appdatapath + "markers/"; if (!Directory.Exists(dstMarkerPath)) { Directory.CreateDirectory(dstMarkerPath); } if (isRecognitionManagerRunning) { #if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN) String sbId = marker.markerId.ToString(); String sbDescriptor = marker.markerDescriptor; #else StringBuilder sbId = new StringBuilder(marker.markerId.ToString()); StringBuilder sbDescriptor = new StringBuilder(marker.markerDescriptor); #endif PikkartARCore.SaveLocalMarker(sbId, sbDescriptor); } else { SaveLocalMarkerFile(marker.markerId, Convert.FromBase64String(marker.markerDescriptor)); } if (sync_after_save) { PikkartARCore.SyncMarkersWithFolder(); } } marker.markerDescriptor = null; _localRecognitionService.SaveMarker(marker, true /*_localRecognitionService.GetMarker(marker.markerId) != null*/); }