Unityでゲームを作っていくと似たようなコードがいっぱい出てくると思います。
例えば、今回のゲームでは敵、味方に関わらず弾は画面外に出ると消滅するようになっています。
他にもHPや得点に関係する変数や関数は複数のスクリプトに共通です。
しかもそのようなものは大抵まとめて変更したくなるものです。 一個一個探して直して、
直し漏れがあるとバグになる・・・のではやいうちに対策を練っておきたいところです。
共通のパラメーターだけをまとめたスクリプトを作るというのも手だと思いますが、
アサインし忘れてヌル参照が出るのに原因が分からないとか結構な手間になるかもしれません。(というか僕はなりましたw)
というわけで今回は「継承」というのを使います。
あるスクリプトを書いたらそこから派生した別のスクリプトを作ることが出来ます。
たとえば
HPBehavior.jsとして
public var HP = 10;
とHPしかないスクリプトを作るとします。
新しくplayerBehavior.jsのような感じで新たにスクリプトを作成して
class playerBehavior extends HPbehavior{ Debug.Log(HP); }
とすると、宣言してないはずのHPが表示されると思います。
インスペクタにもHPが出てくるはずです。
宣言のルールはファイル名=クラス名です。
あとは多重継承できないとか色々ありますが、とりあえずあとは関数のオーバーライドが出来れば
複雑なゲームも結構すっきりしてくるのではないかと思います。
よく言われるjavascriptは暗黙のルールでmonoBehaviorを継承してるっていうのも
ようするに
class hogehoge extends monoBehavior
と宣言しているのと同じことだと言うことです。
この投稿へのコメントの RSS フィード。 / TrackBack URI