使用Instantiate添加时如何重新计算对象的位置? (统一)

问题描述 投票:0回答:1

我对物体的本地坐标和世界坐标完全感到困惑。 我有这样的对象层次结构:

我将 LeftTargetPrefab 和之前保存的位置(例如 Vector3(10f, 10f, 10f))添加到 BallsPath 中,并且设置正确。但如果我尝试将 LeftTargetPrefab 添加到 BallTargets,则位置也会设置为 Vector3(10f, 10f, 10f)。如果在开始游戏时,我创建 LeftTargetPrefab 的克隆并将其拖动到 BallsTarget 中,则坐标将正确转换为本地坐标。如何确保通过 Instantiate 添加到 BallsTarget 时,LeftTargetPrefab(Clone) 位置立即正确地重新计算到本地位置?

c# unity-game-engine position instantiation
1个回答
0
投票

当您说“使用之前保存的位置添加 LeftTargetPrefab”时,这是否会在运行时从脚本中发生?

您可以尝试

Object.Instantiate
instantiateInWorldSpace选项。为此,您可以通过父级
Transform
进行实例化(我猜在本例中为
BallsTarget
)。

另一种选择是通过父对象的

Transform.loaclPosition
等传递父对象的位置和可能的局部坐标偏移。

© www.soinside.com 2019 - 2024. All rights reserved.