短編RPG制作(Unity2D)【第50回】スクリプト見直しその5


再設計完了

ついに、ある程度すっきりしたスクリプト構成に改修できました!

こんな感じ

記号の使い方が正しい自信はありませんが、イメージとしてはこのような形です。
PlayerオブジェクトとEnemyオブジェクトには、それぞれParameter, Attack, Statusスクリプトがアタッチされます。
ゲーム全体(主に敵オブジェクトの生成・消滅とその通知)を管理するスクリプトとしてGameManagerオブジェクトを設定し、UIControllerオブジェクトで画面の更新を管理します。
ダメージ処理はIDamageインターフェイスを介して行っています。IDamageを継承したPlayerDamage, EnemyDamageクラスをオブジェクトにアタッチし、ダメージを受けることができるようにします。

まとめ

SOLID原則の一部分くらいは実現できたのではないかと思います。色々と修正・拡張しやすい設計を調べることで勉強することができました。
ダメージ処理の部分では、プレイヤー-敵間で参照しあう必要性があったのでそこは妥協しています。インターフェイスを使いこなせれば、直接的な参照を取り除くことができそうなのですが、これは力不足ですね。プレイヤー1体、敵1体という部分は拡張する予定がないので無理に分離する必要もないかな、とも思っています。
近いうちにスクリプトの中身やコールバック関数について記録しようと思います。

この記事が気に入ったらサポートをしてみませんか?