万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    interfaceに対してGetComponent Unity

    例えば、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);
    

    のようにスッキリ