//=========================================================================================================
//Note: Data Managing.
//=========================================================================================================
using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using System;
using System.Text;
using System.Xml;
using System.Security.Cryptography;
//GameData,储存数据的类,把需要储存的数据定义在GameData之内就行//
public class GameData
{
//密钥,用于防止拷贝存档//
public string key;
//下面是添加需要储存的内容//
public string PlayerName;
public float MusicVolume;
public int MaxScore;
public int MillitaryLevel; // 0, 1, 2 分别对应少尉 中尉 上尉
public bool BoundWithSNS;
public int CashNo;
public int EneryQuotas;
public int guiderVals;
public int joinGuiderVal;
public bool guiderSwitch;
public int birdsNo;
public int exitTime;
public int playerExp;
public GameData()
{
PlayerName = "Player";
MusicVolume = 0.6f;
MaxScore = 0;
EneryQuotas = 2500;
CashNo =10;
BoundWithSNS = false;
MillitaryLevel = 0;
guiderVals = 1;
joinGuiderVal = 1;
guiderSwitch = true;
birdsNo = 5;
exitTime = 0;
playerExp = 1;
}
}
public class MainShipData
{
//密钥,用于防止拷贝存档//
public string key;
//下面是添加需要储存的内容//
public string saveName;
public int IniShipLevelNo;
public int MaxShipLevel;
public int shipLevelNo;
public int shipUpgreadeLevelATK; // 0, 1, 2 分别对应少尉 中尉 上尉
public int shipUpgreadeLevelArm;
public int shipUpgreadeLevelShiled;
public bool isOwned;
public string childWing;
public string childSeco;
public bool isCurrentUse;
//public
public MainShipData()
{
saveName = "Player";
IniShipLevelNo = 1;
MaxShipLevel = 1;
shipLevelNo = 1;
shipUpgreadeLevelATK = 0;
shipUpgreadeLevelArm = 0;
shipUpgreadeLevelShiled = 0;
isOwned = false;
childWing = "null";
childSeco = "null";
isCurrentUse = false;
}
}
//管理数据储存的类//
public class GameDataManager:MonoBehaviour
{
private string dataFileName ="SABData.dat";//存档文件的名称,自己定//
private XmlSaver xs = new XmlSaver();
public GameData gameData;
public void Awake()
{
if(GameManager.gameDateOneTime == false){
gameData = new GameData();
//设定密钥,根据具体平台设定//
gameData.key = SystemInfo.deviceUniqueIdentifier;
Load();
GameManager.energy = gameData.EneryQuotas;
// print("gameData.EneryQuotas;_______________________________" + gameData.EneryQuotas);
GameManager.gem = gameData.CashNo;
GameManager.heightesScore = gameData.MaxScore;
GameManager.volumeNo = gameData.MusicVolume;
GameManager.guideVal = gameData.guiderVals;
GameManager.val = gameData.joinGuiderVal;
GameManager.guideModel = gameData.guiderSwitch;
GameManager.gameDateOneTime = true;
System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now;
int intA = int.Parse (currentTime.ToString("HHmmss"));
int tempTimeAddShip =(int) (Mathf.Abs(gameData.exitTime - intA)/GameManager.buildOneWarBirdsTime);
GameManager.buildWarBirdsNos = gameData.birdsNo + tempTimeAddShip;
//和当前的机库数量的对比
if(GameManager.buildWarBirdsNos >= GameManager.buildWarBirdsMaxNo){
GameManager.buildWarBirdsNos = GameManager.buildWarBirdsMaxNo;
}
//print(GameManager.guideVal + "______" + GameManager.guideModel + GameManager.guideModel + gameData.guiderSwitch);
}
}
//存档时调用的函数//
public void Save()
{
string gameDataFile = GetDataPath() + "/"+dataFileName;
string dataString= xs.SerializeObject(gameData,typeof(GameData));
xs.CreateXML(gameDataFile,dataString);
}
//读档时调用的函数//
public void Load()
{
string gameDataFile = GetDataPath() + "/"+dataFileName;
if(xs.hasFile(gameDataFile))
{
string dataString = xs.LoadXML(gameDataFile);
GameData gameDataFromXML = xs.DeserializeObject(dataString,typeof(GameData)) as GameData;
//是合法存档//
if(gameDataFromXML.key == gameData.key)
{
gameData = gameDataFromXML;
}
//是非法拷贝存档//
else
{
//留空:游戏启动后数据清零,存档后作弊档被自动覆盖//
}
}
else
{
if(gameData != null)
Save();
}
}
//获取路径//
public static string GetDataPath()
{
// Your game has read+write access to /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Documents
// Application.dataPath returns ar/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/myappname.app/Data
// Strip "/Data" from path
if(Application.platform == RuntimePlatform.IPhonePlayer)
{
string path = Application.dataPath.Substring (0, Application.dataPath.Length - 5);
// Strip application name
path = path.Substring(0, path.LastIndexOf('/'));
return path + "/Documents";
}
else
// return Application.dataPath + "/Resources";
return Application.dataPath;
}
//在退出的时候写入当前需要保存的讯息
public void SaveInfo()
{
gameData.EneryQuotas = GameManager.energy + GameManager.tempEnergy;
gameData.CashNo = GameManager.gem;
gameData.MaxScore = GameManager.heightesScore;
gameData.MusicVolume = GameManager.volumeNo;
gameData.guiderVals = GameManager.guideVal;
gameData.joinGuiderVal = GameManager.val;
gameData.guiderSwitch = GameManager.guideModel;
gameData.birdsNo = GameManager.buildWarBirdsNos;
System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now;
int intA = int.Parse (currentTime.ToString("HHmmss"));
gameData.exitTime = intA;
gameData.playerExp = GameManager.playerExperience;
//print("gameData.EneryQuotas;+++++++++++++++++++" + gameData.EneryQuotas);
Save();
}
}
//Note: Data Managing.
//=========================================================================================================
using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using System;
using System.Text;
using System.Xml;
using System.Security.Cryptography;
//GameData,储存数据的类,把需要储存的数据定义在GameData之内就行//
public class GameData
{
//密钥,用于防止拷贝存档//
public string key;
//下面是添加需要储存的内容//
public string PlayerName;
public float MusicVolume;
public int MaxScore;
public int MillitaryLevel; // 0, 1, 2 分别对应少尉 中尉 上尉
public bool BoundWithSNS;
public int CashNo;
public int EneryQuotas;
public int guiderVals;
public int joinGuiderVal;
public bool guiderSwitch;
public int birdsNo;
public int exitTime;
public int playerExp;
public GameData()
{
PlayerName = "Player";
MusicVolume = 0.6f;
MaxScore = 0;
EneryQuotas = 2500;
CashNo =10;
BoundWithSNS = false;
MillitaryLevel = 0;
guiderVals = 1;
joinGuiderVal = 1;
guiderSwitch = true;
birdsNo = 5;
exitTime = 0;
playerExp = 1;
}
}
public class MainShipData
{
//密钥,用于防止拷贝存档//
public string key;
//下面是添加需要储存的内容//
public string saveName;
public int IniShipLevelNo;
public int MaxShipLevel;
public int shipLevelNo;
public int shipUpgreadeLevelATK; // 0, 1, 2 分别对应少尉 中尉 上尉
public int shipUpgreadeLevelArm;
public int shipUpgreadeLevelShiled;
public bool isOwned;
public string childWing;
public string childSeco;
public bool isCurrentUse;
//public
public MainShipData()
{
saveName = "Player";
IniShipLevelNo = 1;
MaxShipLevel = 1;
shipLevelNo = 1;
shipUpgreadeLevelATK = 0;
shipUpgreadeLevelArm = 0;
shipUpgreadeLevelShiled = 0;
isOwned = false;
childWing = "null";
childSeco = "null";
isCurrentUse = false;
}
}
//管理数据储存的类//
public class GameDataManager:MonoBehaviour
{
private string dataFileName ="SABData.dat";//存档文件的名称,自己定//
private XmlSaver xs = new XmlSaver();
public GameData gameData;
public void Awake()
{
if(GameManager.gameDateOneTime == false){
gameData = new GameData();
//设定密钥,根据具体平台设定//
gameData.key = SystemInfo.deviceUniqueIdentifier;
Load();
GameManager.energy = gameData.EneryQuotas;
// print("gameData.EneryQuotas;_______________________________" + gameData.EneryQuotas);
GameManager.gem = gameData.CashNo;
GameManager.heightesScore = gameData.MaxScore;
GameManager.volumeNo = gameData.MusicVolume;
GameManager.guideVal = gameData.guiderVals;
GameManager.val = gameData.joinGuiderVal;
GameManager.guideModel = gameData.guiderSwitch;
GameManager.gameDateOneTime = true;
System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now;
int intA = int.Parse (currentTime.ToString("HHmmss"));
int tempTimeAddShip =(int) (Mathf.Abs(gameData.exitTime - intA)/GameManager.buildOneWarBirdsTime);
GameManager.buildWarBirdsNos = gameData.birdsNo + tempTimeAddShip;
//和当前的机库数量的对比
if(GameManager.buildWarBirdsNos >= GameManager.buildWarBirdsMaxNo){
GameManager.buildWarBirdsNos = GameManager.buildWarBirdsMaxNo;
}
//print(GameManager.guideVal + "______" + GameManager.guideModel + GameManager.guideModel + gameData.guiderSwitch);
}
}
//存档时调用的函数//
public void Save()
{
string gameDataFile = GetDataPath() + "/"+dataFileName;
string dataString= xs.SerializeObject(gameData,typeof(GameData));
xs.CreateXML(gameDataFile,dataString);
}
//读档时调用的函数//
public void Load()
{
string gameDataFile = GetDataPath() + "/"+dataFileName;
if(xs.hasFile(gameDataFile))
{
string dataString = xs.LoadXML(gameDataFile);
GameData gameDataFromXML = xs.DeserializeObject(dataString,typeof(GameData)) as GameData;
//是合法存档//
if(gameDataFromXML.key == gameData.key)
{
gameData = gameDataFromXML;
}
//是非法拷贝存档//
else
{
//留空:游戏启动后数据清零,存档后作弊档被自动覆盖//
}
}
else
{
if(gameData != null)
Save();
}
}
//获取路径//
public static string GetDataPath()
{
// Your game has read+write access to /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Documents
// Application.dataPath returns ar/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/myappname.app/Data
// Strip "/Data" from path
if(Application.platform == RuntimePlatform.IPhonePlayer)
{
string path = Application.dataPath.Substring (0, Application.dataPath.Length - 5);
// Strip application name
path = path.Substring(0, path.LastIndexOf('/'));
return path + "/Documents";
}
else
// return Application.dataPath + "/Resources";
return Application.dataPath;
}
//在退出的时候写入当前需要保存的讯息
public void SaveInfo()
{
gameData.EneryQuotas = GameManager.energy + GameManager.tempEnergy;
gameData.CashNo = GameManager.gem;
gameData.MaxScore = GameManager.heightesScore;
gameData.MusicVolume = GameManager.volumeNo;
gameData.guiderVals = GameManager.guideVal;
gameData.joinGuiderVal = GameManager.val;
gameData.guiderSwitch = GameManager.guideModel;
gameData.birdsNo = GameManager.buildWarBirdsNos;
System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now;
int intA = int.Parse (currentTime.ToString("HHmmss"));
gameData.exitTime = intA;
gameData.playerExp = GameManager.playerExperience;
//print("gameData.EneryQuotas;+++++++++++++++++++" + gameData.EneryQuotas);
Save();
}
}