2016-09-25 15 views
0

私はいくつかの子供(実際の敵)を持つ別のGameObject(EnemyFormation)をインスタンス化するGameObject(EnemyProducer)を持っています。子供とゲームオブジェクトをインスタンス化する

しかし、私がEnemyFormation GameObjectをインスタンス化すると、子どもはいません!

EnemyFormationは必要なすべての子を持つプレハブです。

これは、それがどのように見えるかです:ここでは

enter image description here

EnemyFormationをインスタンス化しEnemyProducerコードです:

public class EnemyProducer : MonoBehaviour { 
    EnemyFormation enemyGroup; 
    Transform enemyFormationTransform; 
    public float speed; 
    float boundary, currentY; 
    bool goingDown = true; 
    public GameObject enemyFormation; 

    // Use this for initialization 
    void Start() { 
     // Create enemyformation 
     enemyFormation = Instantiate (enemyFormation); 
     enemyFormation.transform.parent = transform; 
     enemyGroup = enemyFormation.GetComponent<EnemyFormation>(); 
     boundary = Camera.main.orthographicSize; 
     enemyFormationTransform = enemyFormation.transform; 
    } 
    void Update() { 

     // if all enemies are killed, create a new one 
     if (!enemyGroup.hasEnemy()) { 
      enemyFormation = Instantiate (enemyFormation); 
      enemyFormation.transform.parent = transform; 
      enemyGroup = enemyFormation.GetComponent<EnemyFormation>(); 
      enemyFormationTransform = enemyGroup.gameObject.transform; 
     } 
    } 
} 
+0

'GameObject enemyFormation'があなたのプレハブである場合、' enemyFormation = Instantiate(enemyFormation);がそれを上書きします。 – Krajca

+0

@Krajcaこれは私がしたいことです。敵のグループが敗北したとき、私は新しい敵のフォームを作成したい。 –

+0

Krajcaが意味することは、インスタンス化したオブジェクトをそのプレハブを保持する変数に保存することです。 –

答えて

0

それはエディタからプレハブをクローン化したので、最初のインスタンス化が成功する可能性新しい複製されたプレハブをenemyFormationに割り当てました。すべての敵(子供)が破壊されたとき(Destroy()を使用していると仮定した場合)、enemyFormationには子が含まれません。次回はInstantiate(enemyFormation)エディタのプレハブではなくなったため、子供がいない場合はgameObjectになると予想されていました(あなたによって割り当てられました)。

申し訳ありません前の回答を削除する必要があります。それはとにかく間違っています。

関連する問題