private void LoadState(PlayerPrefsState stateStorage) { PlayerPrefs.DeleteAll(); for (int i = 0; i < stateStorage.PPKeys.Count; i++) { ValueType valueType = stateStorage.ValueTypes[i]; string ppKey = stateStorage.PPKeys[i]; string stringValue = stateStorage.StringValues[i]; if (valueType == ValueType.String) { PlayerPrefs.SetString(ppKey, stringValue); } else if (valueType == ValueType.Int) { int intValue = int.Parse(stringValue); PlayerPrefs.SetInt(ppKey, intValue); } else if (valueType == ValueType.Float) { float floatValue = float.Parse(stringValue); PlayerPrefs.SetFloat(ppKey, floatValue); } } PlayerPrefs.Save(); }
private void DrawStatePanel() { GUILayout.BeginHorizontal(); if (GUILayout.Button("Create State")) { PopupWindow.Show(_createStateButtonRect, new InputNamePopup(name => { PlayerPrefsState state = CreateInstance <PlayerPrefsState>(); if (!Directory.Exists(StatesFolderPath)) { Directory.CreateDirectory(StatesFolderPath); } string path = StatesFolderPath + name + ".asset"; AssetDatabase.CreateAsset(state, path); AssetDatabase.SaveAssets(); SaveState(state); })); } if (Event.current.type == EventType.Repaint) { _createStateButtonRect = GUILayoutUtility.GetLastRect(); } DrawStates(); GUILayout.EndHorizontal(); }
void Start() { playerPrefs = new PlayerPrefsState(); lista = playerPrefs.Salsvos(lista); for (int i = 0; i < lista.Count; i++) { player = (i + 1).ToString(); GameObject.Find(player).GetComponent <Text>().text = lista[i]; } }
private void DrawStates() { foreach (string guid in AssetDatabase.FindAssets("t:PlayerPrefsState", null)) { string path = AssetDatabase.GUIDToAssetPath(guid); PlayerPrefsState state = AssetDatabase.LoadAssetAtPath <PlayerPrefsState>(path); if (GUILayout.Button(state.name)) { StateActionsPopup stateActionsPopup = new StateActionsPopup(); stateActionsPopup.OnDelete(() => { AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(state)); string[] files = Directory.GetFiles(StatesFolderPath); if (Directory.GetFiles(StatesFolderPath).Length == 0) { Directory.Delete(StatesFolderPath); } else { Debug.Log(files[0]); } AssetDatabase.Refresh(); }); stateActionsPopup.OnLoad(() => { LoadState(state); Refresh(); }); stateActionsPopup.OnSave(() => { SaveState(state); }); PopupWindow.Show(_stateButtonPopupRects[state.name], stateActionsPopup); } if (Event.current.type == EventType.Repaint) { if (!_stateButtonPopupRects.ContainsKey(state.name)) { _stateButtonPopupRects.Add(state.name, new Rect()); } _stateButtonPopupRects[state.name] = GUILayoutUtility.GetLastRect(); } } }
private void SaveState(PlayerPrefsState stateStorage) { stateStorage.PPKeys.Clear(); stateStorage.ValueTypes.Clear(); stateStorage.StringValues.Clear(); foreach (PPEntity entity in _entities) { foreach (string key in entity.PPKeys.Keys) { string ppKey = entity.PPKeys[key]; stateStorage.PPKeys.Add(ppKey); ValueType valueType = GetValueType(entity.Values[key], ppKey); stateStorage.ValueTypes.Add(valueType); string valueAsString = GetValueAsString(ppKey, valueType); stateStorage.StringValues.Add(valueAsString); } } EditorUtility.SetDirty(stateStorage); }
public void LoadPlayer(RobotController robot) { if (robot.unlock == 2) { PlayerPrefsState playerPrefs = new PlayerPrefsState(); lista_strings = playerPrefs.Salsvos(lista_strings); while (!repetir) { if (PlayerPrefs.HasKey("Player" + cont)) { cont++; } else { repetir = true; } } for (int i = 0; i < cont; i++) { if (PlayerPrefs.HasKey("Level" + (robot.level - 1) + (i + 1))) { time.Add(PlayerPrefs.GetFloat("Time" + (robot.level - 1) + (i + 1))); } } if (time.Count > 1) { for (int i = 0; i < time.Count; i++) { if (!a) { recorde = time[i]; jogador = lista_strings[i]; a = true; } if (recorde > time[i + 1]) { recorde = time[i + 1]; jogador = lista_strings[i + 1]; } if ((i + 2) >= time.Count) { break; } } GameObject.Find("melhor_tempo").GetComponent <TextMeshProUGUI>().text = recorde.ToString() + " s"; GameObject.Find("player_rec").GetComponent <TextMeshProUGUI>().text = jogador; GameObject.Find("meu_tempo").GetComponent <TextMeshProUGUI>().text = time[time.Count - 1].ToString() + " s"; } else { GameObject.Find("melhor_tempo").GetComponent <TextMeshProUGUI>().text = time[0] + " s"; GameObject.Find("player_rec").GetComponent <TextMeshProUGUI>().text = PlayerPrefs.GetString("User"); GameObject.Find("meu_tempo").GetComponent <TextMeshProUGUI>().text = robot.floatCount + " s"; } } }