見るとメソッド名が間違い(DagmegaがDemage。interface(インターフェースの実装)を選びますDamageメソッドが追加されましたよく見ると、正しいスペルのメソッド名で新しく作成されていますね。期待されたことが実現できたのではないでしょうか改善したかったことエネミー側のコードが先に作られている必要がありますメソッド名が間違っていると(DamageがDemageになっているなど)、エラーになりますプレイヤー側から見ると、エネミーにアタッチされてるEnemyスクリプトであることが条件になります例えば、将来、壁にもダメージを与えて壊すことができるようにする場合、大きく変更する必要がありますどう改善出来た?1.は、それぞれ作成していてもエラーにならなかったですね。これは、決まり事(インターフェース)に沿って作っていくメリットです2.は、インターフェースの実装(クラス名の右に:で追加しましたね)により、強制的に正しいメソッド名が必要とすることで回避できました3.は、クラスを特定しない(メソッド名でアクセスするだけ)なのでエネミーに限らず、アクセスできるようになりました(Stateクラスとプレイヤーには書かなかったですね。IDamageableとは書きました)他にも使える?今は、プレイヤー側のコードにエネミーにゲームオブジェクトが固定されていますが、ここを差し替えることで、どのようなオブジェクトでも、IDamageableが実装されていればダメージを与えることができるようになりましたエネミーの差し替えとして、Unityでわかりやすいのは、OnTriggerEnterなどのイベントですね。引数(例えば、otherなど)から、other.gameObjectで、接触した相手のオブジェクトの参照が入手できるので、これのGetComponentで使えば効果的面ですおまけこれまでみてきたことは、依存性の逆転の法則と言われるいわゆる定石の1つになります5大定石の1つですので、イメージをつかんでおきましょうSOLID原則SOLID原則とは、ソフトウェア設計の5つの原則の頭字語を取ったものです。ソフトウェアをより理解しやすく、より柔軟に、よりメンテナナンス性の高いものにするために考案されました。...Unityで使われているデザインパターンUnityでは、以下のようなデザインパターンがよく使われています。...いろいろなオブジェクトのクローン(複製)についてUniyで、オブジェクトは、Instantiateメソッドで複製されます。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目ですコメント名前メールアドレスウェブサイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。Unity【Unity】オプション設計のサンプルUnityでオプション登録を実装するためのサンプルコードです。