【问题标题】:How to copy gameobject in unity [duplicate]如何统一复制游戏对象[重复]
【发布时间】:2018-11-10 10:43:54
【问题描述】:

我尝试制作一个玩家必须跳过障碍物的游戏。我希望将障碍物复制到随机位置。我用 C# 编写了脚本的其余部分。我是初学者,所以我不太了解 C#

【问题讨论】:

  • 很久没做unity了,但是你可以检查一个叫做instantiate的函数来创建一个新对象并为新对象设置你自己的位置
  • 是的,但是我是初学者,不懂Unity官方文档
  • 我建议你(至少)看一遍教程视频,然后开始你的团结之旅

标签: c# unity3d


【解决方案1】:

首先,您应该创建一个障碍预制件,因为您想复制它。为此,您可以将其从 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 循环中使用以多次执行(但请确保更改值,以便在不同位置实例化每个对象)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2022-08-23
    相关资源
    最近更新 更多