ふりかえり
前回は「Layout Group」を活用し、UIのレイアウトを大幅にブラッシュアップしました。
UIが整ってくると、「このゲーム、完成が近いな…!」という実感が湧いてきて、開発者としてのテンションも一気に上がりますね!
獲得量を強化してテンポアップ!
今回は、新たな強化要素として、戦闘での直接的な強さではなく、ゴールド(G)・経験値(EXP)・ダイヤの獲得量を強化するシステムを実装しました。
これにより、プレイヤーは攻略テンポを大きく上げられるようになります。たとえば、以前はステージ10に到達するまで1時間ほどかかっていたのが、獲得量の強化によって30分で到達できるといった形です。
また、アーティファクトガチャのコストが引くたびに上がる仕様のため、ダイヤの入手効率アップは後半の攻略に非常に重要になってきます。
実装内容
アーティファクト強化(ArtifactManager)
- G獲得量アップ
- EXP獲得量アップ
- ダイヤドロップ確率アップ
- ダイヤ獲得量アップ
マナ(転生)強化(PrestigeManager)
- 同じく上記4項目の強化要素を追加
この2つのカテゴリで全8種類の強化パスが新たに導入されました。
スクリプト解説
ArtifactManager.cs での処理の流れ
- アーティファクトの種類追加 Enum ArtifactType に4つの新タイプを追加(GoldGain, ExpGain, DiamondDropRate, DiamondDropAmount)
- データ定義 各アーティファクトの効果値(baseValue)とレベルごとの上昇値(valuePerLevel)を設定。
- 効果適用メソッド ApplyAllArtifactEffects() で所持中のアーティファクトすべての効果をプレイヤーデータに反映します。
public void ApplyAllArtifactEffects() { if (playerManager == null || playerManager.player == null) return; // アーティファクトステータスをリセット ResetArtifactStats(); // 所持している全てのアーティファクトの効果を適用 foreach (var artifact in ownedArtifacts) { float effectValue = artifact.baseValue + (artifact.valuePerLevel * (artifact.level - 1)); switch (artifact.artifactType) { case ArtifactType.GoldGain: playerManager.player.artifactPowerUpGoldGain += effectValue; break; case ArtifactType.ExpGain: playerManager.player.artifactPowerUpExpGain += effectValue; break; case ArtifactType.DiamondDropRate: playerManager.player.artifactPowerUpDiamondDropRate += effectValue; break; case ArtifactType.DiamondDropAmount: playerManager.player.artifactPowerUpDiamondDropAmount += Mathf.RoundToInt(effectValue); break; } } // 最終ステータスを再計算 UpdateFinalStats(); } // アーティファクトデータクラス [System.Serializable] public class ArtifactData { public string name; public string description; public ArtifactType artifactType; public float baseValue; public float valuePerLevel; public int level = 1; public ArtifactRank rank = ArtifactRank.C; // アーティファクトのランク public Sprite artifactImage; // アーティファクトの画像 } // アーティファクトタイプ public enum ArtifactType { GoldGain, ExpGain, DiamondDropRate, DiamondDropAmount, }
このように各ステータスを分岐で適用。処理が完了したら UpdateFinalStats() を呼んで最終計算。
PlayerData.cs の最終合算ロジック
アーティファクト強化(artifactPowerUpX)と転生強化(prestigePowerUpX)の合算値を返すメソッドを用意。
// 獲得強化の最終値を取得するメソッド public float GetFinalGoldGainMultiplier() => goldGainMultiplier + artifactPowerUpGoldGain + prestigePowerUpGoldGain; public float GetFinalExpGainMultiplier() => expGainMultiplier + artifactPowerUpExpGain + prestigePowerUpExpGain; public float GetFinalDiamondDropRate() => diamondDropRate + artifactPowerUpDiamondDropRate + prestigePowerUpDiamondDropRate; public int GetFinalDiamondDropAmount() => diamondDropAmount + artifactPowerUpDiamondDropAmount + prestigePowerUpDiamondDropAmount;
これで戦闘中に最終的なドロップや獲得量が正しく反映されます。
Unity上での設定
- Inspector上で各アーティファクトやマナ強化項目を追加
- ArtifactType と StatType に該当する項目を選択
- 一目で効果がわかるようにアイコン画像も設定


動作確認
下の画像を見てもらうとわかるようにアーティファクトとマナ強化でそれぞれG獲得量強化、EXP獲得量強化、ダイヤ獲得確率強化、ダイヤ獲得量強化する要素が追加され、強化するとメニューのステータス画面で確認することができます。
まとめ
今回は、バトル以外の側面で成長スピードをアップできるような「経済系強化要素」を実装しました!
- 獲得量を上げることで、育成テンポが格段に上昇!
- ダイヤ収集効率もアップし、ガチャも引きやすく!
- UIにも数値が反映され、育成の進捗がわかりやすい!
次回以降も強化の選択肢を増やし、遊びごたえのあるゲームバランスにしていきたいと思います!
進捗
今回はUIのブラッシュアップをしました!
- (済)オート戦闘:ボタン操作なしでもバトルが進むようにする。
- (済)オートスキル発動:スキルも自動で発動する機能。
- (済)UIのブラッシュアップ:デザインとレイアウトを整えて見やすくする。
- (済)ステージ数の拡充(最低20):遊びごたえを高めるためにボリュームアップ。
- 復活機能(広告視聴):ゲームオーバー時、広告視聴で復活できる仕組み。
- 広告報酬でダイヤ獲得:無課金でもダイヤが手に入る仕組み。
- (済)G強化・アーティファクト・転生の拡張:各システムにさらなる深みを持たせる。
- (済)回復薬の追加:ステージを進めやすくする。
- アニメーションの追加:ゲーム画面にもっと動きを持たせる。
- レアモンスターの追加:わくわく感を追加する。
次回予告
次回はレアモンスターを追加したいと思います!
プレイヤーは豪華な報酬をゲットできるレアモンスターを倒すために熱中間違いなし!
お楽しみに!