无法在Unity 3D Simple Endless Runner中实例化图块

时间:2019-09-02 13:33:21

标签: unity3d game-engine instantiation

我对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;
    }
}

1 个答案:

答案 0 :(得分:0)

您确定已将预制件分配给block属性吗?而且,预制件的旋转应该已经在块上了,所以Quaternion.identity通常足以旋转。

我认为第一个实例化应该在Start()函数中,否则您的起始块将在每帧已经存在的起始块之上获得另一个(因此,在1秒钟内,您可以在所有块中拥有60个起始块)相同的排名(0,1.91f,21.85f)。

另一个问题可能是您放置脚本的位置。 您确定脚本实际上在场景中的某个对象上吗?碰巧您写了一些东西,但实际上并没有在任何地方添加它。如果是这种情况,只需创建一个空的游戏对象,然后将脚本拖到该对象上即可。

如果您将脚本设置为预制组件,则第一个块将创建十亿个块的指数增长,并使您的PC崩溃,因此也不要这样做。

如果将pos设置为int或float且= 0,则它应在2-3秒内创建100个块,然后停止。