インターフェース(Interface)

【概要】

 :ブループリントやC++クラス間での共通の機能を定義する手法のこと。

 :インターフェースを使用すると、異なるクラスが同じメソッドを実装できる。

 :例えば、特定の機能を持つクラス間の通信や動作の標準化に利用する。

【作り方】

 1.インターフェースアセット
   の作成
   :コンテンツブラウザ右クリック >「Blueprints」>「Blueprint Interface」を選択する。インターフェースアセットに名前を付ける。

 2.メソッドの定義
  :インターフェースエディタを開き、共通のメソッドを定義する。
  
  :メソッドには入力と出力のパラメータを設定できる。

 3.クラスの作成
  :インターフェースを実装するクラス(ブループリントまたはC++クラス)を作成する。

 4.インターフェースの追加
  ・ブループリントの場合
   :クラスの「Class Settings」パネル >「Implemented Interfaces」セクション

 5.メソッドの実装
  :インターフェースで定義したメソッドをクラス内で実装する。
  
  :ブループリントでは、イベントグラフに対応するイベントを追加して、ロジックを実装する。

 6.インターフェースの呼び出し

  a. ブループリントから呼び出し
   :インターフェースを実装するオブジェクトに対して、インターフェースメソッドを呼び出す。

   :例えば、「Interface Call」ノードを使用して、特定のメソッドを呼び出す。

  b. キャストの使用
   :インターフェースの実装を確認するため、「Cast To Interface」ノードを使用する。
  
   :オブジェクトがインターフェースを実装している場合は、メソッドが呼び出せる。

【例】

 ・ダメージシステム
   
  1)インターフェースの作成
    :「IDamageable」というインターフェースを作成して、「ApplyDamage」というメソッドを定義する。このメソッドはダメージの量を入力パラメータとして受け取る。

  2)クラスの実装
    :複数のクラス(例:キャラクター、オブジェクト)で「IDamageable」インターフェースを実装し、「ApplyDamage」メソッドを定義する。
    
    :それぞれのクラスは、ダメージを受けたときの独自の処理を実装する。

  3)ダメージの適用
    :攻撃を行うクラスから、ターゲットに対し「ApplyDamage」メソッドを呼び出す。
    
    :ターゲットが「IDamageable」インターフェースを実装している場合、対応するダメージが処理される。