カロリーメイトください

Barbaroi Ware(バルバロイ・ウェア)という名前でアプリ開発してます

【再】『Unityの寺子屋 定番スマホゲーム開発入門』「Chapter05 サイドビューアクションをつくろう」5

Unityの寺子屋 定番スマホゲーム開発入門

Unityの寺子屋 定番スマホゲーム開発入門

序文

サイドビューアクション5日目。

ひきもりぎみ。

進捗

  • Chapter05 サイドビューアクションをつくろう
    • 5-3 画面の境界とゴールを作成しよう

クラス図

https://raw.githubusercontent.com/gladiolusbamboo/180921UnityTerakoyaAgain/master/TheRun/out/UML/class/TheRun181012.png

GitHub

github.com

実行結果

www.youtube.com

感想

www.slideshare.net

ゲーム内容的には進んでいない。

スライド48ページ前後の内容を参考に、プレイヤーが触れたときにイベントを引き起こすクラスに適用するIHitEventHandlerというインターフェースを作成。

(以下、自分の思考の整理のためにつらつら書いてますが、第三者的にはひどくわかりにくい文章だと思います…ごめんなさい。)

(クラス図はごちゃごちゃしすぎて読み取れないが)これによってPlayerHitSensorクラスからはIHitEventHandlerインターフェースにだけアクセスすればよくなり、直接GameOverHandlerクラスやGameClearHandlerクラスにアクセスしなくてよいようになった。

この改善によって、プレイヤーが触れたオブジェクトと実際の処理(GameOverを表示する、GameClearを表示するなど。)の結合が弱くなったので、たとえば動画のように穴に落ちたときにGameClearの処理をするといった実装が簡単にできるようになった。

そしてさらに重要なことはPlayerHitSensorクラスがIHitEventHandlerインターフェースにだけアクセスすればよくなったことで、PlayerHitSensorクラス自体を書き換える必要がなくなり、実際の処理はIHitEventHandlerインターフェースを実装しているクラスに丸投げできるようになったことだろう。
今後、ぶつかってはいけない敵キャラクターを実装するときにもPlayerHitSensorクラスを書き換えることなくゲームオーバーの実装ができそうだ。(実際はGameOverHandlerクラスをアタッチするだけですむかもしれないが)

なるほど、これが拡張に対して開いている。修正に対して閉じているということか。
完全に理解した。

カロリーメイトください。

BGM

シーサイド・ばいばい / 木更津キャッツアイ feat.MCU www.youtube.com