例えば、2つ敵キャラクター(Enemy1, Enemy2)がいて、
共通のメソッドがあるが互いにComponentのクラスが異なる(Enemy1にはEnemy1クラス Enemy2にはEnemy2クラス)とき。
var enemy1 = GetComponent<Enemy1> (); enemy1.ApplyDamage ();
と
var enemy2 = GetComponent<Enemy2> (); enemy2.ApplyDamage ();
を両立したいがそれぞれ書くのは面倒だと思う。
IEnemyみたいなインターフェイスを使って、
Enemy1とEnemy2にそれぞれ実装する。
URL: http://forum.unity3d.com/threads/60596-GetComponents-Possible-to-use-with-C-Interfaces
そうすれば、
var enemy = (IEnemy)go.GetComponent(typeof (IEnemy));
enemy.ApplyDamage (power);
のようにスッキリ