using UnityEngine;
using System.Collections;
using System;
public class GameSettings : MonoBehaviour {
void Awake () {
DontDestroyOnLoad(this);
}
public void SaveCharacterData () {
GameObject pc = GameObject.Find("pc");
PlayerCharacter pcClass = pc.GetComponent<PlayerCharacter>();
PlayerPrefs.DeleteAll();
PlayerPrefs.SetString("Player Name", pcClass.Name);
for (int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) {
PlayerPrefs.SetInt(((AttributeName)cnt).ToString() + " - Base Value", pcClass.GetPrimaryAttribute(cnt).BaseValue);
PlayerPrefs.SetInt(((AttributeName)cnt).ToString() + " - Exp To Level", pcClass.GetPrimaryAttribute(cnt).ExpToLevel);
}
for (int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) {
PlayerPrefs.SetInt(((VitalName)cnt).ToString() + " - Base Value", pcClass.GetVital(cnt).BaseValue);
PlayerPrefs.SetInt(((VitalName)cnt).ToString() + " - Exp To Level", pcClass.GetVital(cnt).ExpToLevel);
PlayerPrefs.SetInt(((VitalName)cnt).ToString() + " - Cur Value", pcClass.GetVital(cnt).CurValue);
// PlayerPrefs.SetString(((VitalName)cnt).ToString() + " - Mods", pcClass.GetVital(cnt).GetModifyingAttributeString());
}
for (int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) {
PlayerPrefs.SetInt(((SkillName)cnt).ToString() + " - Base Value", pcClass.GetSkill(cnt).BaseValue);
PlayerPrefs.SetInt(((SkillName)cnt).ToString() + " - Exp To Level", pcClass.GetSkill(cnt).ExpToLevel);
// PlayerPrefs.SetString(((SkillName)cnt).ToString() + " - Mods", pcClass.GetSkill(cnt).GetModifyingAttributeString());
}
}
public void LoadCharacterData () {
GameObject pc = GameObject.Find("pc");
PlayerCharacter pcClass = pc.GetComponent<PlayerCharacter>();
pcClass.Name = PlayerPrefs.GetString("Player Name", "Name Me");
for (int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) {
pcClass.GetPrimaryAttribute(cnt).BaseValue = PlayerPrefs.GetInt(((AttributeName)cnt).ToString() + " - Base Value", 0);
pcClass.GetPrimaryAttribute(cnt).ExpToLevel = PlayerPrefs.GetInt(((AttributeName)cnt).ToString() + " - Exp To Level", Attribute.STARTING_EXP_COST);
}
for (int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) {
pcClass.GetVital(cnt).BaseValue = PlayerPrefs.GetInt(((VitalName)cnt).ToString() + " - Base Value", 0);
pcClass.GetVital(cnt).ExpToLevel = PlayerPrefs.GetInt(((VitalName)cnt).ToString() + " - Exp To Level", 0);
// string myMods = PlayerPrefs.GetString(((VitalName)cnt).ToString() + " - Mods", "");
// string [] mods = myMods.Split('|');
// foreach (string s in mods) {
// string [] modStats = s.Split('_');
// int attribIndex = 0;
// for (int x = 0; x < Enum.GetValues(typeof(AttributeName)).Length; x++) {
// if (modStats[0] == ((AttributeName)x).ToString()) {
// attribIndex = x;
// Debug.Log(modStats[0] + " = " + ((AttributeName)x).ToString());
// break;
// }
// }
// pcClass.GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(pcClass.GetPrimaryAttribute(attribIndex), modStats[1]));
// }
// make sure you call this so that the AdjustedBaseValue will be updated before you try to call to get the curValue
pcClass.GetVital(cnt).Update();
// get the stored value for the curValue for each vital
pcClass.GetVital(cnt).CurValue = PlayerPrefs.GetInt(((VitalName)cnt).ToString() + " - Cur Value", 1);
// pcClass.GetVital(cnt).GetModifyingAttributeString() = PlayerPrefs.GetString(((VitalName)cnt).ToString() + " - Mods", 0);
}
for (int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) {
pcClass.GetSkill(cnt).BaseValue = PlayerPrefs.GetInt(((SkillName)cnt).ToString() + " - Base Value", 0);
pcClass.GetSkill(cnt).ExpToLevel = PlayerPrefs.GetInt(((SkillName)cnt).ToString() + " - Exp To Level", 0);
}
// output the curValue for each of the vitals
for (int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) {
Debug.Log(((SkillName)cnt).ToString() + " : " + pcClass.GetSkill(cnt).BaseValue + " : " + pcClass.GetSkill(cnt).ExpToLevel);
}
}
}
GameSettings.cs
最新推荐文章于 2025-07-01 10:20:43 发布