void AddBufferToTimeline(ReplaySupport.ReplayBuffer replayBuffer, bool forceAddbaseFrame = false)
    {
        replayBuffer.time = this._playheadTime;
        this._rawHistory.AddLast(replayBuffer);

        if (forceAddbaseFrame || (this._accumulatedTime >= this.baseFrameTimestepSeconds))
        {
            this._accumulatedTime -= this.baseFrameTimestepSeconds;
            this.ShiftHistorybaseFrameIndexIfNeeded();
            this._latestBaseFrameIndex = this.WrappedBaseFrameIndex(this._latestBaseFrameIndex + 1);
            this._baseFrames[this._latestBaseFrameIndex] = this._rawHistory.Last;
        }
    }
    ReplaySupport.ReplayBuffer CreateRecordBufferForWriting()
    {
        var buffer = new ReplaySupport.ReplayBuffer();

        return(buffer._InitWrite((this.replayableScript as ReplaySupport.Replayable).GetFieldCountPerFrame()));;
    }