示例#1
0
    /// <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();
    }
示例#2
0
    /// <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);
    }