public static int GetBestScore(string musicName, Difficulty difficulty) { int chartElement = (int)difficulty; ScoreDataStruct scoreData = LoadScoreData(musicName); return(scoreData.scores[chartElement].bestScore); }
public static void SetScoreCacheStruct(string musicName, ScoreDataStruct scoreData) { if (StaticValue.cacheStructs == null) { return; } for (int i = 0; i < StaticValue.cacheStructs.Length; i++) { if (StaticValue.cacheStructs[i].musicName == musicName) { StaticValue.cacheStructs[i].scoreStruct.scores = scoreData.scores; break; } } }
public IEnumerator StartInit() { Application.targetFrameRate = 60; loadName = StaticValue.loadName; if (Constant.CompareEnv(GameEnvironment.local)) { musicStruct = ChartUtility.LoadMusicData(loadName); } else if (Constant.CompareEnv(GameEnvironment.webGL)) { CacheStruct cacheStruct = ChartUtility.FindCacheStruct(loadName); musicStruct = cacheStruct.musicStruct; scoreData = cacheStruct.scoreStruct; } yield return(StartCoroutine(GameInit())); }
public static ScoreDataStruct LoadScoreData(string musicName) { ScoreDataStruct scoreData = null; if (Constant.CompareEnv(GameEnvironment.local)) { string json = ReadScoreDataJson(musicName); if (json == string.Empty) { return(null); } scoreData = JsonUtility.FromJson <ScoreDataStruct>(json); } else if (Constant.CompareEnv(GameEnvironment.webGL)) { scoreData = FindCacheStruct(musicName).scoreStruct; } return(scoreData); }
/// <summary> /// スコアデータを更新する /// </summary> /// <param name="musicName"></param> /// <param name="score"></param> /// <param name="difficulty"></param> /// <param name="clearType"></param> /// <returns></returns> public static IEnumerator WriteScoreDataFromResult(string musicName, int score, Difficulty difficulty, ClearType clearType) { int chartElement = (int)difficulty; ScoreDataStruct scoreData = null; if (Constant.CompareEnv(GameEnvironment.local)) { scoreData = LoadScoreData(musicName); } else if (Constant.CompareEnv(GameEnvironment.webGL)) { bool isFinish = false; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("MusicData"); query.WhereEqualTo("musicName", musicName); query.Limit = 1; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { isFinish = true; Debug.LogError(e); } else { string scoreJson = Convert.ToString(objList[0]["scoreData"]); scoreData = JsonUtility.FromJson <ScoreDataStruct>(scoreJson); isFinish = true; } }); // 取得が完了するまで待機 while (!isFinish) { yield return(null); } } if (scoreData == null) { yield break; } ScoreStruct scoreStruct = scoreData.scores[chartElement]; if (scoreData == null) { scoreData = new ScoreDataStruct(); } if (scoreStruct.bestScore < score) { scoreData.scores[chartElement].bestScore = score; } if (scoreStruct.clearType < clearType) { scoreData.scores[chartElement].clearType = clearType; } if (clearType > ClearType.Failed) { scoreData.scores[chartElement].clearCount++; } scoreData.scores[chartElement].playCount++; RankingManage(ref scoreData.scores[chartElement], score, clearType); string scoreDataJson = JsonUtility.ToJson(scoreData); if (Constant.CompareEnv(GameEnvironment.local)) { string filePath = Application.streamingAssetsPath + Constant.musicDataDirectory + "/" + musicName; if (!Directory.Exists(filePath)) { yield break; } string dataFilePath = filePath + "/" + musicName + Constant.scoreExtension; File.WriteAllText(dataFilePath, scoreDataJson); } else if (Constant.CompareEnv(GameEnvironment.webGL)) { bool isFinish = false; NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("MusicData"); query.WhereEqualTo("musicName", musicName); query.Limit = 1; query.FindAsync((List <NCMBObject> objList, NCMBException e) => { if (e != null) { isFinish = true; Debug.LogError(e); } else { objList[0]["scoreData"] = scoreDataJson; objList[0].SaveAsync((NCMBException exp) => { if (exp != null) { isFinish = true; Debug.LogError(e); } else { isFinish = true; } }); } }); // 取得が完了するまで待機 while (!isFinish) { yield return(null); } SetScoreCacheStruct(musicName, scoreData); } }