首先,您应该创建一个障碍的预制件,因为您想复制它。为此,您可以将其从 Scene Hierarchy 拖到 Project>Assets 文件夹。
之后,在您的场景中创建一个空游戏对象,并为其添加一个脚本,您可以将其称为ObstacleSpawner em>。
我不想给你一个完整的答案...但是在脚本中,你会有一个public GameObject障碍;(或public GameObject[]障碍; 如果有多个)。保存脚本后,Empty Game Object > ObstacleSpawner (Script) 的 inspector 窗口 现在将在盒子。您可以将您制作的障碍物预制件拖到那里。
要生成障碍,请返回脚本。在 Start() { } 函数中,使用 Instantiate 函数。它需要 3 个参数,第一个是 GameObject,所以这将是 障碍。第二个是 Vector2(x,y) 或 Vector3(x,y,z) 位置,第三个是旋转 (Quaternion.Euler(x,y, z))。
要在 Empty Game Object 所在的位置简单地生成障碍物,请使用 Instantiate(obstacle, transform.position, transform.rotation);
我假设这是 2d,所以你可以随机改变 Vector2 位置的 x 值使其左右移动,下面的例子会返回Empty Game Object 中 x 轴 上 0 到 20 个单位之间的 x 位置:float num = Random.Range(0, 20); 。
Instantiate 可以在 for 循环中使用以多次执行(但请确保更改值,以便在不同位置实例化每个对象)。