/// <summary> /// 初始化服务器数据 /// </summary> public void InitServerData() { //找当当前的用户名 if (userName == "") { userName = UserModel.Instance.GetMyUserId(); } serverTaskList = new List <ServerTaskData>(); //如果没有初始数据,就创建一个用户初始数据 if (!File.Exists(Application.persistentDataPath + "/TaskData.Json")) { //没有服务器数据就先初始化数据 InitData(userName, 9001, TaskState.notOver); InitData(userName, 9002, TaskState.notOver); InitData(userName, 9003, TaskState.notOver); InitData(userName, 9004, TaskState.notOver); InitData(userName, 9005, TaskState.notOver); InitData(userName, 9006, TaskState.notOver); } else { string json = File.ReadAllText(Application.persistentDataPath + "/TaskData.Json"); //读Json serverTaskList = JsonMapper.ToObject <List <ServerTaskData> >(json); //取出表里面当前玩家的数据,存在当前玩家的服务器数据中 for (int i = 0; i < serverTaskList.Count; i++) { if (serverTaskList[i].username == userName) { //根据服务器数据到本地获取数据 LocalTaskData localTaskModel = LocalTaskModel.Instance.GetLocalTaskDataById(serverTaskList[i].id); //合并数据 TaskData taskData = new TaskData(localTaskModel.id, serverTaskList[i].taskState, localTaskModel.des, localTaskModel.awardType, localTaskModel.taskType, localTaskModel.expValue, localTaskModel.awardValue); //存到字典中 AddTask(taskData); } } //如果新用户没有服务器数据就先初始化数据 if (taskDic.Count == 0) { InitData(userName, 9001, TaskState.notOver); InitData(userName, 9002, TaskState.notOver); InitData(userName, 9003, TaskState.notOver); InitData(userName, 9004, TaskState.notOver); InitData(userName, 9005, TaskState.notOver); InitData(userName, 9006, TaskState.notOver); } } //读入json SaveData(); }
/// <summary> /// 初始化用户数据 /// </summary> /// <param name="userName"></param> /// <param name="id"></param> /// <param name="taskState"></param> public void InitData(string userName, int id, TaskState taskState) { ServerTaskData serverTaskData = new ServerTaskData(userName, id, taskState); serverTaskList.Add(serverTaskData); //根据服务器数据到本地获取数据 LocalTaskData localTaskModel = LocalTaskModel.Instance.GetLocalTaskDataById(serverTaskData.id); //合并数据 TaskData taskData = new TaskData(localTaskModel.id, serverTaskData.taskState, localTaskModel.des, localTaskModel.awardType, localTaskModel.taskType, localTaskModel.expValue, localTaskModel.awardValue); //存到字典中 AddTask(taskData); }