Skip to content

Instantly share code, notes, and snippets.

@TORISOUP
Last active January 24, 2016 17:11
Show Gist options
  • Save TORISOUP/c1818ddac15242d24c01 to your computer and use it in GitHub Desktop.
Save TORISOUP/c1818ddac15242d24c01 to your computer and use it in GitHub Desktop.
//ファイアーボール側のOnCollisionEnterの実装例
void OnCollisionEnter(Collision coll)
{
//すでにダメージを与えた後なら何もしない
if (isDisabled) return;
// 対象がダメージを受けることができるオブジェクトであるか調べる
var target = coll.gameObject.GetComponent<IDmageable>();
if ( target == null ) return;
//対象にダメージを与える
target.ApplyDamage(damageValue);
//一度動作したら何もしなくする
isDisabled = true;
}
//---------ここから別ファイル------------
//ダメージを受けることができるインターフェイス
interface IDmageable
{
void ApplyDamage(int damageValue);
}
//---------ここから別ファイル------------
//ダメージを受ける側のComponent
class EnemyHoge : MonoBehaviour, IDmageable //←IDmageableを実装
{
//
//省略
//
// IDamageableインターフェイスの実装
void ApplyDamage(int damageValue)
{
hp -= damageValue;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment