1

私は 2D スペースインベーダー スタイルのゲームを作成していますが、リスポーンが非常に困難です。私が起こしたいのは、SpaceShip がヒットしたとき、Destroy(); のように Destroyed になることです。

しかし、SpaceShip の Prefab を Instantiate() しようとすると、(clone)(clone) 問題が発生するため、SpaceShip の Prefab でスポーンする空のゲームオブジェクト実行スクリプトを作成しようとしています。 ); 3秒後にリスポーンします。私は JavaScript でコーディングしています。

4

1 に答える 1

1

プレハブから数秒ごとにインスタンス化するクラスを 1 つ用意します。エディタを介してドラッグする必要がありplayerPrefab、スポーンの場所を指定する必要があります。

public class Spawner : Monobehaviour
{
    public GameObject playerPrefab;

    public void spawn()
    {
        Instantiate(playerPrefab, spawnPosition, spawnRotation);
    }
}

その後、あなたPlayerが死ぬSendMessageと、Spawnerクラスに参加できます。

public class Player : MonoBehaviour
{
    void Update()
    {
        if(hp <= 0)
        {
             // Grab the reference to the Spawner class.
             GameObject spawner = GameObject.Find("Spawner");

             // Send a Message to the Spawner class which calls the spawn() function.
             spawner.SendMessage("spawn");
             Destroy(gameObject);
        }
    }
}

の同じコードUnityScript

Spawner.js

  var playerPrefab : GameObject;

  function spawn()
  {
      Instantiate(playerPrefab, spawnPosition, spawnRotation);
  }

Player.js

  function Update()
  {
      if(hp <= 0)
      {
          // Grab the reference to the Spawner class.
          var spawner : GameObject = GameObject.Find("Spawner");

          // Send a Message to the Spawner class which calls the spawn() function.
          spawner.SendMessage("spawn");
          Destroy(gameObject);
      }
  }
于 2014-11-28T22:27:26.670 に答える