【发布时间】:2019-01-05 04:23:52
【问题描述】:
好的,标题可能会让人困惑,因为我不知道怎么写。
我的情况:我有一个带有 4 个子对象的 2d 精灵,每个子对象都围绕着精灵作为周长。所以它看起来像这样:
Spawner2 有一个脚本,其方法如下,在游戏开始时调用。在脚本中,我实例化了一个新的预制件:
public void GenerateBox(int count)
{
...
GameObject spawnedRoom = Instantiate(possibleRooms[chosen], transform.position, Quaterion.identity);
}
但这会在 Spawner1 的位置实例化对象。
所以我尝试调试。我将 Spawner2 从其父级中拉出并查看位置(即 X:1.0062,Y:-0.0038)。我把它放回 2d sprite 中,当我 debug.log 它的位置时,它给了我 X: 0, Y: 1, Z: -9.8。
是因为我的预制吗?有什么问题,我该如何解决?
【问题讨论】:
-
如果你改用 transform.localPosition 会发生什么?
-
@CareyOn 如果我使用 transform.localPosition,它会在 X 轴上将对象实例化几个单位
-
如果 Spawner2 的本地位置 Y=1,您的轴心点可能不在 spawnedRoom 的中心,这就是为什么它似乎在错误的位置生成(y 轴上 1 个单位太高) .
-
@Marc2001
Instantiate(..., transform.position, ...);在代码运行的生成器位置生成了游戏对象。您想在其中一个生成器上生成游戏对象吗? -
@EhsanMohammadi 我希望它在 Spawner2 生成。
标签: unity3d position parent-child instantiation