/// <summary> /// Update the Data values with the Items values /// </summary> public virtual void UpdateData(SelectorManager manager) { for (int i = 0; i < manager.Editor.Items.Count; i++) //Save the Locked Elements { Save.Locked[i] = manager.Editor.Items[i].Locked; Save.ItemsAmount[i] = manager.Editor.Items[i].Amount; if (Save.UseMaterialChanger && manager.Editor.Items[i].MatChanger) { Save.MaterialIndex[i] = manager.Editor.Items[i].MatChanger.AllIndex; } if (Save.UseActiveMesh && manager.Editor.Items[i].ActiveMesh) { Save.ActiveMeshIndex[i] = manager.Editor.Items[i].ActiveMesh.AllIndex; } } Save.FocusedItem = manager.Controller.FocusedItemIndex; if (usePlayerPref) { PlayerPrefs.SetString(PlayerPrefKey, MalbersTools.Serialize <SelectorSave>(Save)); } #if UNITY_EDITOR UnityEditor.EditorUtility.SetDirty(this); #endif }
/// <summary> /// Save the Data on the Player Pref Settings /// </summary> public virtual void SaveDataPlayerPrefs() { if (usePlayerPref) { if (PlayerPrefs.HasKey(PlayerPrefKey)) { PlayerPrefs.DeleteKey(PlayerPrefKey); } PlayerPrefs.SetString(PlayerPrefKey, MalbersTools.Serialize <SelectorSave>(Save)); } }
/// <summary> /// Restore the items values from the Restore Data /// </summary> public virtual void RestoreData(SelectorManager manager) { if (usePlayerPref && PlayerPrefs.HasKey(PlayerPrefKey)) { Save = MalbersTools.Deserialize <SelectorSave>(PlayerPrefs.GetString(PlayerPrefKey)); } Update_Current_Data_from_Restore(); for (int i = 0; i < manager.Editor.Items.Count; i++) //Save the Locked Elements { manager.Editor.Items[i].Locked = Save.RestoreLocked[i]; manager.Editor.Items[i].Amount = Save.RestoreItemsAmount[i]; if (Save.UseMaterialChanger && manager.Editor.Items[i].MatChanger) { manager.Editor.Items[i].MatChanger.AllIndex = Save.RestoreMaterialIndex[i]; } if (Save.UseActiveMesh && manager.Editor.Items[i].ActiveMesh) { manager.Editor.Items[i].ActiveMesh.AllIndex = Save.RestoreActiveMeshIndex[i]; } } if (usePlayerPref) { if (PlayerPrefs.HasKey(PlayerPrefKey)) { PlayerPrefs.DeleteKey(PlayerPrefKey); } PlayerPrefs.SetString(PlayerPrefKey, MalbersTools.Serialize <SelectorSave>(Save)); } UpdateItems(manager); //Update the Items from the Data #if UNITY_EDITOR UnityEditor.EditorUtility.SetDirty(this); #endif }
/// <summary> /// Saves the Initial Data of a Selector Manager /// </summary> public virtual void SetDefaultData(SelectorManager manager) { Save.RestoreCoins = Save.Coins; //Save the RestoreCoins to the Current Coins Save.RestoreLocked = new List <bool>(); Save.Locked = new List <bool>(); Save.RestoreItemsAmount = new List <int>(); Save.ItemsAmount = new List <int>(); Save.UseMaterialChanger = Save.UseActiveMesh = false; Save.FocusedItem = manager.Controller.FocusedItemIndex; Save.ActiveMeshIndex = null; Save.RestoreActiveMeshIndex = null; Save.MaterialIndex = null; Save.RestoreMaterialIndex = null; if (manager.Editor.Items != null && manager.Editor.Items.Count > 1) //Check for Material Changer and Active Mesh { if (manager.Editor.Items[0].MatChanger != null) { Save.UseMaterialChanger = true; Save.RestoreMaterialIndex = new List <string>(); Save.MaterialIndex = new List <string>(); } if (manager.Editor.Items[0].ActiveMesh != null) { Save.UseActiveMesh = true; Save.RestoreActiveMeshIndex = new List <string>(); Save.ActiveMeshIndex = new List <string>(); } } for (int i = 0; i < manager.Editor.Items.Count; i++) { Save.RestoreLocked.Add(manager.Editor.Items[i].Locked); Save.RestoreItemsAmount.Add(manager.Editor.Items[i].Amount); if (Save.UseMaterialChanger && manager.Editor.Items[i].MatChanger) { Save.RestoreMaterialIndex.Add(manager.Editor.Items[i].MatChanger.AllIndex); } if (Save.UseActiveMesh && manager.Editor.Items[i].ActiveMesh) { Save.RestoreActiveMeshIndex.Add(manager.Editor.Items[i].ActiveMesh.AllIndex); } } Update_Current_Data_from_Restore(); if (usePlayerPref) { if (PlayerPrefs.HasKey(PlayerPrefKey)) { PlayerPrefs.DeleteKey(PlayerPrefKey); } PlayerPrefs.SetString(PlayerPrefKey, MalbersTools.Serialize <SelectorSave>(Save)); Debug.Log("Default Data saved on PlayerPref using the key: '" + PlayerPrefKey + "'\n" + MalbersTools.Serialize <SelectorSave>(Save)); } #if UNITY_EDITOR UnityEditor.EditorUtility.SetDirty(this); #endif }