8
ゲームを開発するためにオブジェクトの継承を可能な限り使用しないでください。
Unityでゲームを開発するときは、OOP機能が好きです。通常、基本クラス(ほとんどが抽象化された)を作成し、オブジェクトの継承を使用して、同じ機能を他のさまざまなオブジェクトと共有します。 ただし、最近、継承を使用することは避けなければならず、代わりにインターフェイスを使用する必要があると誰かから聞きました。だから私は理由を尋ねて、「オブジェクトの継承はもちろん重要ですが、拡張オブジェクトがたくさんあると、クラス間の関係は深く結合されます。 私は、のようなものを抽象基底クラスを使用していますWeaponBaseし、同様に、特定の武器クラスを作成しShotgun、AssaultRifle、Machinegunそのような何か。非常に多くの利点があり、私が本当に楽しんでいるパターンの1つはポリモーフィズムです。サブクラスによって作成されたオブジェクトを基本クラスであるかのように扱うことができるため、ロジックを大幅に削減し、再利用可能にすることができます。サブクラスのフィールドまたはメソッドにアクセスする必要がある場合、サブクラスにキャストし直します。 私は、一般的に異なるクラスで使用したのと同じフィールドを定義する必要が好きではありませんAudioSource/ Rigidbody/ Animatorそして私は次のように定義されたメンバフィールドをたくさんfireRate、damage、range、spreadというように。また、場合によっては、一部のメソッドが上書きされる可能性があります。そのため、その場合は仮想メソッドを使用しているため、基本的には親クラスのメソッドを使用してそのメソッドを呼び出すことができますが、子でロジックが異なる場合は、手動でオーバーライドします。 それで、これらすべてを悪い習慣として捨てるべきですか?代わりにインターフェイスを使用する必要がありますか?
36
unity
architecture
oop