public void addFrameItemToLatestFrame(Vector3 position, Quaternion rotation,
                                          bool deactivateAfterThisFrame, TimeManageable item)
    {
        TransformData tfd          = new TransformData(); tfd.position = position; tfd.rotation = rotation;
        FrameItem     newFrameItem = new FrameItem(); newFrameItem.transformData = tfd;

        newFrameItem.deactivateAfterThisFrame = deactivateAfterThisFrame;
        newFrameItem.item = item;
        recordedFrames[recordedFrames.Count - 1].AddFrameItem(newFrameItem);
    }
    private void RewindOneFrame(Frame frame)
    {
        foreach (FrameItem fi in frame.frameEntities)
        {
            TimeManageable tm = fi.item;
            tm.gameObject.SetActive(true);
            tm.transform.position = fi.transformData.position;
            tm.transform.rotation = fi.transformData.rotation;

            if (fi.deactivateAfterThisFrame)
            {
                this.deleteOnNextRewindFrame.Add(tm);
            }
        }
    }