/// <summary> /// Starts the native service recognition. /// </summary> /// <param name="recognitionOptions">Recognition options.</param> /// <param name="recognitionListener">Recognition listener(MainScript).</param> public void StartRecognition(RecognitionOptions recognitionOptions, IRecognitionListener recognitionListener) { StopRecognition(); SyncMarkersWithFolder(); _recognitionRunning = true; _active = true; _currentRecognitionOptions = recognitionOptions; _recognitionListener = recognitionListener; _dataProvider = new RecognitionDataProvider(recognitionOptions.getCloudInfo(), this, GetDeviceId()); #if !UNITY_EDITOR if (!LoadSavedCameraParams()) { _dataProvider.ExecuteGetCameraParamFromServer(true); } #endif PikkartARCore.ChangeMode(_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL); PikkartARCore.StartRecognition(_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL, false); PikkartARCore.StartEffect(); _markerId = ""; if (_currentRecognitionOptions.getMode() == RecognitionOptions.RecognitionMode.TAP_TO_SCAN) { scheduleTimers(); } }
public void ChangeRecognitionOptions(RecognitionOptions recognitionOptions) { if (_recognitionRunning) { if (_currentRecognitionOptions.getStorage() != recognitionOptions.getStorage()) { if (recognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL) { PikkartARCore.StartEffect(); } else { PikkartARCore.StopEffect(); } PikkartARCore.ChangeMode(recognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL); } if (_currentRecognitionOptions.getMode() != recognitionOptions.getMode()) { if (recognitionOptions.getMode() != RecognitionOptions.RecognitionMode.TAP_TO_SCAN) { stopTimers(); } else { scheduleTimers(); } } } _currentRecognitionOptions = recognitionOptions; }
public void scheduleTimers() { _mainTimer.Stop(); _mainTimer.AutoReset = false; _mainTimer.Elapsed += (s, e) => { if (_currentRecognitionOptions.getStorage() == RecognitionOptions.RecognitionStorage.LOCAL || _cloudMarkerNotFoundCount > 0) { StopRecognition(); _recognitionListener.MarkerNotFound(); } }; _mainTimer.Start(); _serverResponseTimer.Stop(); _serverResponseTimer.AutoReset = false; _serverResponseTimer.Elapsed += (s, e) => { StopRecognition(); _recognitionListener.MarkerNotFound(); }; if (_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL) { _serverResponseTimer.Start(); } }