我有一个GameObject(EnemyProducer)实例化另一个GameObject(EnemyFormation),它有几个孩子(真正的敌人)。
然而,当我实例化EnemyFormation Gameobject时,它没有任何孩子!
EnemyFormation是预装了所有必需的孩子。
这就是它的样子:
以下是实例化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 :(得分:0)
第一个实例化可能是成功的,因为它从编辑器克隆了预制件,但随后您将新克隆的预制件重新分配给enemyFormation
。当所有敌人(儿童)被摧毁(假设您使用Destroy()
)时,enemyFormation
将不包含任何儿童。下次你Instantiate(enemyFormation)
时,你应该得到一个没有孩子的gameObject
,因为它不再是编辑的预制件(它已被你重新分配)。
抱歉,我必须删除之前的答案。无论如何,这是错误的。