結論から言いますと、GameManagerに全ての変数を書くのは良くないですね
むしろGameManagerは殆ど何も書いてないのが理想的です。
一番最初の初期化だけ書くとか、どうしてもという場合のみに使うといいでしょう。
理由はたくさんあります。
可読性が低くなりますし、1箇所直したら意図しない部分まで変わってしまうことがあります。
後から分けようとしても使っている箇所が多すぎて分けられず、仕方なくそのまま進めても、
1つのバグを直したら2つのバグが生まれ、それを直したらまた・・・なんていう地獄にハマってしまいます。
そのため、設計が必要になります。
ただ、いきなり設計について勉強しようとしてもなかなか書いてある意味がわからないと思います。
まずは質問にある、変数をまたいで使いたいということにのみ絞ります。
これについては、データだけを持ったクラスを作って、それを必要な人にだけ渡していく、
という手法をとります。
例えばポケモンでもなんでもいいですが、RPGのバトルがあるとして、
キャラクターのHPがありますよね?
HPという変数は、HPゲージ、つまりUIでも使いますし、
キャラクター本人は、HPを減らしたり、HPがゼロになったかどうかの判定を行います。
この場合、例えばCharacterParam(キャラクターパラメーター、名前なんでもいいです)というクラスを作り、
それにHPや、攻撃力、死んだかどうかの判定フラグなどの、そのキャラクターに関する必要な変数を入れます
あとはそれをUIや、キャラクター本人や、バトルマネージャーなどの、データを必要としている人に渡します。
UIはCharacterParamを見て、HPが減っていたり増えていたりしたら、それに合わせて表示を更新します。
キャラクター本人は、ダメージを受けたらCharacterParamのHPを変化させ、死亡していたら「死んだフラグ」を立てます。
バトルマネージャーは、CharacterParamの「死んだフラグ」を見て、フラグが立っていたら戦闘を終わらせます
こんな感じで、データをキャラクター本人と分離させて、他の人が見れるように渡していくのを、
まず一歩とするといいかなと思います。
長くなりましたが、頑張ってください
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/29 03:10