所以基本上我试图添加一堆孩子到GameObject。父游戏物体被称为SnakeHead
而所有其他GameObjects被称为SnakeBodyParts
GameObject不允许超过一个孩子
public class GameController : MonoBehaviour {
public GameObject snakeHead;
public GameObject snakeBodyPart;
public List<GameObject> snakeBodyParts;
void Start() {
snakeBodyParts = new List<GameObject>();
Instantiate<GameObject>(snakeHead);
for (int i = 0; i < 4; i++)
{
var newObj = Instantiate<GameObject>(snakeBodyPart);
newObj.transform.position = new Vector3(snakeHead.transform.position.x, snakeHead.transform.position.y - (i + 1), 0);
newObj.transform.SetParent(snakeHead.transform);
snakeBodyParts.Add(newObj);
}
}
}
所以looke像snakeHead.transform.childCount;
为1。任何人都可以向我解释这种行为? SnakeHead
和SnakeBodyPart
都是一个简单的球体,作为3D对象添加到我的项目中。
当您在调试器中运行并暂停时,您是否可以在编辑器中看到其他孩子? –
你可以显示你在哪里调用'.childcount' – ryeMoss
@SandyGifford除了SnakeHead,我还会看到其他5个GameObject(SnakeBodyPart和4个克隆的原始)。所以奇怪的是,snakeBodyParts的原始版本是SnakeHead的一个孩子,而我在这个for循环中实例化的所有克隆都没有。 – user2877820