Unity3D零件移动

Unity3D零件移动,unity3d,Unity3d,在这里的人们(以及联合论坛)的帮助下,我几乎对我正在进行的构建感到满意。 该建筑展示了一台增压泵,用于提升工业清洗用水压力 到目前为止,我可以缩放、旋转、平移和按1-3键来显示/隐藏内部零件 我想让内部部分移动到按键上的位置,而不是仅仅出现在位置上(就像现在的-1st.image),所以我有这个移动脚本。 但是,当我旋转/移动助力泵时,它看起来不正确(第二张图)。 移动的部件没有跟随助力泵的主要部件 从我收集的信息来看,它与本地空间或世界空间有关,但我不知道该如何实现它 如果内部零件是父对象

在这里的人们(以及联合论坛)的帮助下,我几乎对我正在进行的构建感到满意。 该建筑展示了一台增压泵,用于提升工业清洗用水压力

到目前为止,我可以缩放、旋转、平移和按1-3键来显示/隐藏内部零件

我想让内部部分移动到按键上的位置,而不是仅仅出现在位置上(就像现在的-1st.image),所以我有这个移动脚本。 但是,当我旋转/移动助力泵时,它看起来不正确(第二张图)。 移动的部件没有跟随助力泵的主要部件

从我收集的信息来看,它与本地空间或世界空间有关,但我不知道该如何实现它


如果内部零件是父对象的子对象,并且您希望它们独立地移动,同时继续与其父对象一起旋转和移动,则应更改它们的localPositions。通过更改局部位置而不是世界位置,您可以告诉他们相对于父对象的中心将该距离从初始位置移开,无论父对象在何处,或在何时如何旋转

试着改变

StartPos = transform.position;

然后改变

transform.position = Vector3.Lerp(StartPos, EndPos, distPos);


这就解决了我的问题。你让我明白了同时发生了什么。谢谢你,亚历克斯:)
StartPos = transform.localPosition;
transform.position = Vector3.Lerp(StartPos, EndPos, distPos);
transform.localPosition = Vector3.Lerp(StartPos, EndPos, distPos);