我正在开发一款包含 1000 x 1000 正方形平铺地图的游戏,但我遇到了问题。
我尝试制作两个不同的脚本来解决这个问题。第一个是对我需要的草率方法。我的第二个脚本是一种更有效的方法来满足我的需要。
脚本 1:
void fill()
{
for (float i = 0; i != 1000; i++)
{
Instantiate(GameObject.Find("Dirt"), new Vector2(xPos++, yPos), Quaternion.identity);
xrepeat++;
if (xrepeat == 1000)
{
xPos = 0;
yPos = yPos - 1;
yrepeat++;
if(yrepeat != 1000)
{
i = 0;
xPos = 0;
}
if(xPos < 0) //Prevents an overflow.
{
break;
}
}
}
脚本 2:
void buildx()
{
for (int i = 1000; i != 0; i--)
{
Instantiate(GameObject.Find("Dirt"), new Vector2(xPos++, yPos), Quaternion.identity);
if (xPos == 1000)
{
buildy();
}
}
}
void buildy()
{
if (yPos == -1000)
{
Destroy(this); // Job is done, time to pack up
}
else
{
for (int i = 1000; i != 0; i--)
{
Instantiate(GameObject.Find("Dirt"), new Vector2(xPos, yPos--), Quaternion.identity);
buildx();
}
}
}
第一个脚本将我的泥土块复制了 1000 次,然后将 y 轴减去 1 并重复直到达到配额。那种工作但它在工作结束时放弃了。第二个脚本在 x 轴和 y 轴之间来回来回检查 1000 配额,但由于某种原因它冻结了。
我几乎放弃了脚本 1 而选择了脚本 2,因为我认为脚本 2 效率更高。
有什么办法可以让脚本 2 工作吗?
大话西游666
相关分类