/// <summary> /// 実績解除チェック /// </summary> public void CheckRelease() { // IDがnullなら処理を抜ける if (achievementIDs == null) { return; } // インスタンスを取得 AchievementScriptableObject achievementData = AchievementScriptableObject.Instance; // 各実績が解除できる状態なら、解除する // 初ジャンプ if (playData.PlayCount == achievementData.GetFirstJumpNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.FirstJump]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.FirstJump, achievementIDs[(int)AchievementScriptableObject.AchievementType.FirstJump], 100); } // 宇宙到達 if (playData.GetNowScore() >= achievementData.GetReachedUniverseNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.ReachedUniverse]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.ReachedUniverse, achievementIDs[(int)AchievementScriptableObject.AchievementType.ReachedUniverse], 100); } // 太陽系制覇 if (playData.GetNowScore() >= achievementData.GetConqueredSolarSystemNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.ConqueredSolarSystem]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.ConqueredSolarSystem, achievementIDs[(int)AchievementScriptableObject.AchievementType.ConqueredSolarSystem], 100); } // 15回ジャンプ if (playData.PlayCount == achievementData.GetJumpedFifteenNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.JumpedFifteen]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.JumpedFifteen, achievementIDs[(int)AchievementScriptableObject.AchievementType.JumpedFifteen], 100); } // 30回ジャンプ if (playData.PlayCount == achievementData.GetJumpedThirtyNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.JumpedThirty]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.JumpedThirty, achievementIDs[(int)AchievementScriptableObject.AchievementType.JumpedThirty], 100); } int haveItem = 0; // アイテム所持数 bool[] isHaveItem = itemData.GetIsHasItem(); // アイテム所持フラグ for (int i = 0; i < isHaveItem.Length; i++) { // アイテムを所持しているなら所持数を加算 if (isHaveItem[i]) { haveItem++; } } // アイテムコンプリート if (haveItem == achievementData.GetItemCompleteNum() && !playData.AchievementStatus[(int)AchievementScriptableObject.AchievementType.ItemComplete]) { ReleaseAchievement(AchievementScriptableObject.AchievementType.ItemComplete, achievementIDs[(int)AchievementScriptableObject.AchievementType.ItemComplete], 100); } }
bool isEnd = false; // 処理終了フラグ /// <summary> /// 更新 /// </summary> void Update() { // 処理終了フラグがtrueなら処理を抜ける if (isEnd) { return; } // スコアのカウントアップが終わったら if (scoreCountUp.IsEnd) { // スコアが指定した値を超えていれば if (playData.GetNowScore() > GoodScore) { // 喜ぶアニメーション再生 animator.SetTrigger("Rejoice"); // 位置調整用のアニメーション再生 parentAnim.SetTrigger("PositionChange"); // 歓声サウンドを再生する AudioPlayer.instance.PlaySe(AudioPlayer.SeType.Cheers); } else { // 悲しむアニメーション再生 animator.SetTrigger("Sad"); // チーンを再生する AudioPlayer.instance.PlaySe(AudioPlayer.SeType.Tin); } isEnd = true; } }
PlayDataManager playDataManager = default; //プレイデータ管理クラス /// <summary> /// 開始処理 /// </summary> void Start() { // 今のスコアがハイスコアの7割以上だったら共有促しの吹き出し表示 if (playDataManager.GetNowScore() >= playDataManager.HighScore * 0.7f && playDataManager.HighScore > 0) { // ローカライズされた言語が日本語なら if (localizeController.GetLanguageNum() == (int)LocalizeScriptableObject.LocalizeLanguage.Japanese) { speechBubble[0].SetActive(true); } // それ以外 else { speechBubble[1].SetActive(true); } } }
} = false; // 処理終了フラグ /// <summary> /// オブジェクト起動時 /// </summary> void OnEnable() { // 獲得スコアを取得 getScore = playData.GetNowScore(); // カウントアップ中のドラムロール音を再生 AudioPlayer.instance.PlaySe(AudioPlayer.SeType.DramRoll); }