我有一些块预制件,我添加到游戏对象数组中:
public GameObject []阻止;
每个预制件都有BoxCollider2D,Script& Rigidbody2D组件。但是当我尝试在场景中实例化预制件时,它似乎没有附加组件?
以下是我实例化预制件的方法:
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < gridWidth; j++)
{
blockClone = Instantiate (blocks [Random.Range (0, blocks.Length)] as GameObject, new Vector3 (j, -i-2, 0f), transform.rotation) as GameObject;
}
}
我做错了什么?
答案 0 :(得分:1)
确保您的预制件实际更新为包含BoxCollider2D和Rigibody2D。
更改此行:
blockClone = Instantiate (blocks [Random.Range (0, blocks.Length)] as GameObject,
new Vector3 (j, -i-2, 0f), transform.rotation) as GameObject;
致:
blockClone = Instantiate(blocks [Random.Range (0, blocks.Length)],
new Vector3(j, -i-2, 0f), transform.rotation) as GameObject;
您不需要额外的as GameObject
如果所有其他方法都失败了,您可以使用AddComponent.
在运行时将它们附加到预制件上 blockClone.AddComponent<BoxCollider2d>();
那应该是你的最后一个选择,但在你做之前要仔细检查你的预制件。