Unity-GameObjectの破壊
GameObjectsの破棄は、インスタンス化と同じくらい重要です。この章では、ゲームオブジェクトを破棄する方法を学習します。
幸い、GameObjectの破棄は、作成するのと同じくらい簡単です。破棄するオブジェクトへの参照が必要なだけで、Destroy() この参照をパラメーターとして使用するメソッド。
ここで、割り当てられたキーが押されたときに自分自身を破壊する5つの六角形を作成してみましょう。
と呼ばれる新しいスクリプトを作成しましょう HexagonDestroyerVisualStudioで開きます。公開することから始めますKeyCode変数。KeyCodeは、標準キーボードのキーを指定するために使用され、そのメソッドのInputクラスはそれを使用します。以前にRigidbodyとPrefabsで行ったように、この変数を公開することで、エディターからアクセスできるようになります。変数が公開されるとき、私たちは必要ありませんhardcode「KeyCode.A」などの値をコードに追加します。コードは、必要な数のオブジェクトを使用して柔軟にすることができます。
public class HexagonDestroyer : MonoBehaviour {
public KeyCode keyToDestroy;
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(keyToDestroy)) {
Destroy (gameObject);
}
}
}
メソッドで「gameObject」(小さいg、大文字のO)という名前の変数をどのように使用したかを観察します。この新しいgameObject 変数(タイプ GameObject)は、このスクリプトがアタッチされているgameObjectを参照するために使用されます。このスクリプトを複数のオブジェクトにアタッチすると、この変数が関係する場合は常にすべて同じように反応します。
ただし、この2つを混同しないでください。
GameObject 大文字のGとOは class これはすべてのGameObjectを網羅し、Instantiate、Destroy、コンポーネントをフェッチするメソッドなどの標準メソッドを提供します。
gameObject とともに small gと大文字のOは特定のものです instance このスクリプトが現在アタッチされているgameObjectを参照するために使用されるGameObjectの。
コードをコンパイルして、Unityに戻りましょう。
次に、新しい六角形のスプライトを作成し、それにスクリプトを添付します。次に、階層内のgameObjectを右クリックして、Duplicate。新しいスプライトが階層に作成されます。あなたは使用する必要がありますMoveそれを再配置するためのツール。手順を繰り返して、同様の六角形を作成します。
それぞれの六角形をクリックして、それらのスクリプトコンポーネントを確認します。これで、個々のキーを設定して、そのキーが押されたときにGameObjectがそれ自体を破棄するようにできます。たとえば、5つの六角形を作成し、A、S、D、F、およびGキーが押されたときに破壊するように設定します。
複数の六角形に同じキーを設定できます。キーを押すと、すべての六角形が同時に破壊されます。これは、の使用例です。gameObject 参照。個別に設定しなくても、スクリプトを使用して個々のオブジェクトを参照するために使用できます。
同じキーを複数の六角形に設定でき、キーを押すとそれらはすべて同時に破壊されます。これは、の使用例です。gameObject 参照。個別に設定しなくても、スクリプトを使用して個々のオブジェクトを参照するために使用できます。
GameObjectを破棄しても、オブジェクトが粉々になったり爆発したりするわけではないことを理解することが重要です。オブジェクトを破壊すると、ゲーム(およびそのコード)に関する限り、その存在は単純に(そしてすぐに)停止します。このオブジェクトとその参照へのリンクは現在壊れており、それらのいずれかにアクセスまたは使用しようとすると、通常、エラーとクラッシュが発生します。