質問

「健康」、「スピード」、「スタミナ」を持つオブジェクト「敵」としてUnitycriptで行うことができます。そして、オブジェクトを削除するか、一度にいくつかを削除しますか?

class enemy {
    health = 100
    speed = 10
    stamina = 200
}

for 0 to 10
{
    enemyBig = new Enemy ()
}


if keydown (space)
{
    delete all.enemyBig 
}

UnityScriptのこのコードはどのように正しくなりますか?

役に立ちましたか?

解決

すべての敵を一度に追跡するために、あなたが必要とするものは 配列. 。そこには良いチュートリアルがあります:

他のヒント

JavaScriptでは、クラスを定義するには、関数を作成します。

function Enemy {
   this.health = 100;
   ....
};

そして、プロトタイプにメソッドを置くために(JavaScriptがプロトタイプ継承を使用するため)。

Enemy.prototype.theMethod = function () { ... };

メソッドを定義するために上記を行う場合、メソッドはインスタンスメソッドです。 IEすべてのオブジェクトには、メソッドの独自のコピーがあります。 「静的」メソッドを定義する場合は、クラスにメソッドを配置するだけです

Enemy.staticMethod = function() {...};

違いは、あなたができる前者にとってです

var enemy1 = new Enemy();
enemy1.theMethod(); // this in the theMethod refers to enemy1

そして後者のためにあなたはします

Enemy.staticMethod(); // there is only one staticMethod for the entire class.

オブジェクトを実装するには:

function Enemy {
    this.health = 100;
    ...
};

Enemy.prototype.attack = function() {
    this.health -= 10;
    ...
};

var boogerMonster = new Enemy();
boogerMonster.attack();

オブジェクトを削除する限り、Garbage Collectorは、他の参照がない場合、オブジェクトの処理を行います。

しかし、質問から、それはように見えます ただ この情報を知ることはあなたを遠くに運ぶことはありません。 本をつかむ JavaScriptおよび/または いくつかのオンライン調査を行います JavaScriptの基礎を本当に理解するため。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top