Beispiel #1
0
        public Room(SessionCapture sessionCapture)
        {
            _sessionCapture = sessionCapture;

            _deltaTime = 0.0;

            _datastore = new Datastore();

            if (!sessionCapturePlayback)
            {
                _client = new Client();
                _client.persistenceMessageReceived += ReceivedPersistenceMessage;
                _client.rpcMessageReceived         += ReceivedRPCMessage;
            }
        }
        private void Awake()
        {
            _realtime = GetComponent <Realtime>();

            string outputDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Normal\\SessionCapture");

            if (_mode == Mode.Record)
            {
                string outputFileName = "Session_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".realtime";
                string outputFilePath = Path.Combine(outputDirectory, outputFileName);
                Directory.CreateDirectory(outputDirectory);

                // Create session
                Debug.Log("Record file path: " + outputFilePath);
                SessionCapture sessionCapture = new SessionCapture(outputFilePath);

                // Set on Realtime
                _realtime.room = new Room(sessionCapture);
            }
            else if (_mode == Mode.Playback)
            {
                // If no playback files are specified, attempt to find the most recent one in the output directory.
                if (_playbackCaptureFiles == null || _playbackCaptureFiles.Length <= 0)
                {
                    FileInfo file = new DirectoryInfo(outputDirectory).GetFiles("*.realtime").OrderByDescending(f => f.CreationTime).FirstOrDefault();
                    if (file != default(FileInfo))
                    {
                        _playbackCaptureFiles = new string[] { file.FullName }
                    }
                    ;
                }

                if (_playbackCaptureFiles != null)
                {
                    // Create session
                    SessionCapture sessionCapture = new SessionCapture(_playbackCaptureFiles);

                    // Set on Realtime
                    _realtime.room = new Room(sessionCapture);
                }
                else
                {
                    Debug.LogError("RealtimeSessionCapture: Unable to find any session capture files to play back.");
                }
            }
        }
    }