public void CreateSave()
        {
            var hook = new GameSavingEvent(SceneManager.GetActiveScene().name);
            hook.Call();
            string fileName = Application.persistentDataPath + "/" + SaveName + ".save";
            SaveFile sf = null;
            // save file already exists.
            if (File.Exists(fileName)) {
                sf = DataSerializer.DeserializeProtoObject<SaveFile>(ZipTools.DecompressBytes(File.ReadAllBytes(fileName)));
            }
            else {
                sf = new SaveFile(SaveName);
            }

            sf.Add(hook.SceneData);
            using (MemoryStream saveFileData = new MemoryStream(DataSerializer.SerializeProtoObject(sf))) {
                // Holds final zipped file data bytes.
                saveFileData.Position = 0;
                File.WriteAllBytes(fileName, ZipTools.CompressBytes(saveFileData.ToArray()));
            }
        }