0
试图在游戏开始时立即创建一个简单的圆形游戏物体的网格。每个圆之间的空间需要是2D的1.41和1.34。所以用一点数学,我会认为这个脚本会创建相对于初始参考对象的这个网格。实例化冻结Unity
但是,在编辑器中单击游戏时,游戏就会冻结,我必须用命令提示符杀死Unity。
任何想法?
下面是代码:
void Awake()
{
Transform transform = gameObject.GetComponent<Transform>();
for (float i = 1; i < 8; i++)
{
for (float j = 1; j<8;j++)
{
Instantiate(gameObject, transform.position + new Vector3(i * 1.41f, 0, j * 1.34f), new Quaternion(0, 0, 0, 0));
}
}
}
尝试使用调试器,然后逐步通过代码我相信它会冻结在有问题和/或问题的线上。你有没有调试过,但我会认为这个'gameObject'应该被替换因为这是这一行中新创建的对象实例'Instantiate(gameObject,' – MethodMan
由此我认为Awake函数正在每个副本上运行,并且永远不会在迭代器上超过1,循环不休,在那里任何方式来阻止这种情况? –
@JamesHughes你说得对,每次复制都会调用一次,所以你刚刚创建了无限循环,只是单独创建网格和创建圆形对象。 – juniperi