我对Unity和游戏开发者是完全陌生的,所以也许这是一个原始的问题,但是我陷于其中。
我正在尝试制作非常基本的《无尽的亚军》,我已经创建了玩家,调整了相机等。现在我必须生成地板块以使游戏“无尽”。
我做了一个预制件,现在我想在我想使用坐标的地方实例化它,并且我为每个下一个可能生成的坐标添加+1,但是代码不起作用。请帮忙,问题出在哪里?
void Update()
{
Instantiate(block, new Vector3(0, 1.91f, 21.85f), block.rotation);
if (pos < 200)
{
Instantiate(block, new Vector3(1.9f, -5.33f, pos), block.rotation);
pos += 2;
}
}
答案 0 :(得分:0)
您确定已将预制件分配给block
属性吗?而且,预制件的旋转应该已经在块上了,所以Quaternion.identity通常足以旋转。
我认为第一个实例化应该在Start()函数中,否则您的起始块将在每帧已经存在的起始块之上获得另一个(因此,在1秒钟内,您可以在所有块中拥有60个起始块)相同的排名(0,1.91f,21.85f)。
另一个问题可能是您放置脚本的位置。 您确定脚本实际上在场景中的某个对象上吗?碰巧您写了一些东西,但实际上并没有在任何地方添加它。如果是这种情况,只需创建一个空的游戏对象,然后将脚本拖到该对象上即可。
如果您将脚本设置为预制组件,则第一个块将创建十亿个块的指数增长,并使您的PC崩溃,因此也不要这样做。
如果将pos设置为int或float且= 0,则它应在2-3秒内创建100个块,然后停止。