public void Play(HandsDataRecording recording)
 {
     ManuallyMoveToFrame    = ManuallyMoveToFrameDisabledValue;
     CurrentPlayedRecording = recording;
     _framesToPlay          = new Queue <HandsDataRecordedFrame>(recording.HandsDataRecordedFrames);
     CurrentlyPlayedFrame   = 0;
 }
예제 #2
0
        private void PlayRecording(HandsDataRecording rec)
        {
            HandsDataPlayer.Play(rec);

#if UNITY_EDITOR
            UnityEditor.Selection.activeGameObject = HandsDataPlayer.gameObject;
#endif
        }
예제 #3
0
        private void LoadPersistedHandDataRecordings()
        {
            new DirectoryInfo(LocalPersistPath).Create();

            foreach (var filePath in System.IO.Directory.EnumerateFiles(LocalPersistPath))
            {
                try
                {
                    var fileContents = System.IO.File.ReadAllText(filePath);
                    var persistedHandsDataRecording = XmlSerialize.Deserialize <PersistedHandsDataRecording>(fileContents);
                    HandsDataRecording.Create(this.transform,
                                              persistedHandsDataRecording.Name, persistedHandsDataRecording.HandsDataRecordedFrames, persistedHandsDataRecording.InitHandData,
                                              DeleteLocalRecording, PlayRecording
                                              );
                }
                catch (Exception e)
                {
                    Debug.LogError($"Unable to {nameof(LoadPersistedHandDataRecordings)}");
                }
            }
        }
예제 #4
0
        public void StopRecording()
        {
            if (string.IsNullOrEmpty(NewRecordingName))
            {
                Debug.LogError($"You need to specify '{nameof(NewRecordingName)}'");
                return;
            }

            IsRecording = false;
            if (_handDataRecordedFrames.Count == 0)
            {
                Debug.LogError($"Recording: '{NewRecordingName}' captured 0 frames, it won't be saved.");
                return;
            }

            var recording = HandsDataRecording.Create(this.transform, NewRecordingName, _handDataRecordedFrames, _initHandData, DeleteLocalRecording, PlayRecording);

            PersistDataLocallySafe(recording.RecordingName, recording.HandsDataRecordedFrames);
            Debug.Log($"Recording: '{NewRecordingName}' competed, captured {_handDataRecordedFrames.Count} frames.");

            _currentHandDataRecorderFrame = null;
            _handDataRecordedFrames       = new List <HandsDataRecordedFrame>();
            NewRecordingName = string.Empty;
        }
예제 #5
0
 private static void DeleteLocalRecording(HandsDataRecording rec)
 {
     File.Delete(GenerateRecordingFilePath(rec.RecordingName));
     GameObject.Destroy(rec.gameObject);
 }