プレイヤーがダメージを受けたら、体力バーを更新して、悲鳴を再生して、カメラを揺らして、ゲームオーバー判定もして——気づけばプレイヤーのスクリプトが UIManager も AudioManager も CameraManager も全部知っている。「1つ直すと全部壊れる」コードのできあがりです。
この「全員が全員を知っている」状態(密結合
GetComponentや直接参照の多用は、コードを複雑で壊れやすくします。C#の強力な機能であるデリゲート(delegate)とイベント(event)を使い、オブジェクト間の依存関係を断ち切り、拡張性と再利用性の高い疎結合なシステムを設計する方法を解説します。
プレイヤーがダメージを受けたら、体力バーを更新して、悲鳴を再生して、カメラを揺らして、ゲームオーバー判定もして——気づけばプレイヤーのスクリプトが UIManager も AudioManager も CameraManager も全部知っている。「1つ直すと全部壊れる」コードのできあがりです。
この「全員が全員を知っている」状態(密結合