public void LoadState(long frame) { if (gameHistory.ContainsKey(frame)) { TrackableInterface[] loadedInterfaces = gameHistory[frame]; foreach (TrackableInterface trackableInterface in loadedInterfaces) { UFEInterface reflectionTarget = trackableInterface.ufeInterface; reflectionTarget = RecordVar.LoadStateTrackers(trackableInterface.ufeInterface, trackableInterface.tracker); if (reflectionTarget == null && debugger) { Debug.LogWarning("Empty interface found at '" + trackableInterface.ToString() + "'"); } } } else { Debug.LogError("Frame data not found (" + frame + ")"); } }
public void SaveState(long frame) { List <TrackableInterface> newTrackableList = new List <TrackableInterface>(); foreach (UFEInterface ufeInterface in ufeInterfaces) { TrackableInterface newTrackableInterface; newTrackableInterface.ufeInterface = ufeInterface; newTrackableInterface.tracker = RecordVar.SaveStateTrackers(ufeInterface, new Dictionary <System.Reflection.MemberInfo, object>()); newTrackableList.Add(newTrackableInterface); } if (gameHistory.ContainsKey(frame)) { gameHistory[frame] = newTrackableList.ToArray(); } else { gameHistory.Add(frame, newTrackableList.ToArray()); } }