Esempio n. 1
0
        void Start()
        {
            instance = this;

            // GameSave
            var gameSavables = new IBinarySavable[]
            {
                Player.instance,
            };

            gameSave = new BinarySavableCollection(gameSavables);

            // Settings
            var settingsSavables = new ITextSavable[]
            {
                new TextSavableField
                (
                    "Quality Level",
                    t => QualitySettings.SetQualityLevel(int.Parse(t)),
                    w => w.Write(QualitySettings.GetQualityLevel()),
                    () => QualitySettings.SetQualityLevel(0)
                ),
                new TextSavableField
                (
                    "Audio Volume",
                    t => AudioListener.volume = float.Parse(t),
                    w => w.Write(AudioListener.volume),
                    () => AudioListener.volume = 1
                ),
            };

            settings = new TextSavableCollection(settingsSavables);

            // platform-dependent
#if UNITY_PS4
            var saveManager = new PS4SaveManager();

            gameSaveTarget  = new PS4StorageTarget("TestGameSave.bin");
            gameSaveManager = saveManager;

            settingsTarget  = new PS4StorageTarget("TestSettings.txt");
            settingsManager = saveManager;
#else // Standalone
    #if STEAM
            gameSaveTarget  = new SteamStorageTarget("TestGameSave.bin");
            gameSaveManager = new SteamSaveManager();

            settingsTarget  = new FileStorageTarget("TestSettings.txt");
            settingsManager = new BackgroundThreadSaveManager();
    #else // File System
            var saveManager = new BackgroundThreadSaveManager();

            gameSaveTarget  = new FileStorageTarget("TestGameSave.bin");
            gameSaveManager = saveManager;

            settingsTarget  = new FileStorageTarget("TestSettings.txt");
            settingsManager = saveManager;
    #endif
#endif
        }
Esempio n. 2
0
 /// <summary>
 /// Converts the <see cref="IBinarySavable" /> object to a byte array by calling its <see cref="IBinarySavable.WriteToStream(Stream, object)" /> method on a <see cref="MemoryStream" />.
 /// </summary>
 /// <param name="obj">This <see cref="IBinarySavable" /> object.</param>
 /// <param name="arg">Provides the argument which is passed to the <see cref="IBinarySavable.WriteToStream(Stream, object)" /> method.</param>
 /// <returns>
 /// A byte array converted from the <see cref="IBinarySavable" /> object.
 /// </returns>
 public static byte[] ToBytes(this IBinarySavable obj, object arg = null)
 {
     using (var ms = new MemoryStream())
     {
         ms.WriteBinarySavable(obj, arg);
         return(ms.ToArray());
     }
 }
Esempio n. 3
0
 public static void WriteBinarySavable(this Stream stream, IBinarySavable obj, params object[] args)
 {
     if (obj == null)
     {
         stream.WriteByte(0);
     }
     else
     {
         stream.WriteByte((byte)IOChecks.BinarySavable);
         obj.WriteToStream(stream, args);
     }
 }
Esempio n. 4
0
 static void _writeISavable(Stream s, IBinarySavable obj)
 {
     obj.WriteToStream(s, null);
 }