発生している問題
機能を実装する際にインターフェースを使ったほうがいいのか悩んでいます
例えばダメージをうけるDamageableのようなものを実装する場合
1.Damageableというクラスを作ってgetComponentで判別する
2.IDamageableというインターフェースを作って判別する
基準のようなものはあるのでしょうか?
該当のソースコード
1.Damageableというクラスを作ってgetComponentで判別する
C#
1public class Damageable:Monobehaviour{ 2 public void TakeDamage(){ 3 //damage code 4 } 5} 6// 上のクラスをPlayerのGameObjectにアタッチする 7 8public class Enemy:Monobehaviour{ 9 void OnCollideEnter(Collider other){ 10 Damageable damageable = other.gameobject.getcomponent<Damageable>(); 11 damageable.TakeDamage(); 12 } 13} 14
2.IDamageableというインターフェースを作って判別する
C#
1public interface IDamageable{ 2 public void TakeDamage(); 3} 4 5public class Player:Monobehaviour,IDamageable{ 6 public void TakeDamage(){ 7 //damage code 8 } 9} 10 11public class Enemy:Monobehaviour{ 12 void OnCollideEnter(Collider other){ 13 IDamageable iDamageable = other.gameobject.getcomponent<IDamageable>(); 14 iDamageable.TakeDamage(); 15 } 16} 17
1でやってることはインタフェースでやってることと似てるように思えるのですが
インターフェースをできるだけ使った方がいいのでしょうか
使い分けの基準などがあったら教えてください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/11 05:54