예제 #1
0
 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 + ")");
     }
 }
예제 #2
0
    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());
        }
    }