如何修改旋转变速杆的位置

时间:2014-12-15 05:41:39

标签: c# unity3d unityscript

我有一个关于修改旋转变换位置的问题。例如, enter image description here

我已经围绕x轴旋转了图片中显示的对象。然后我想沿着它的y轴(黄色箭头)移动它。为了实现这一点,我使用像

这样的代码
    transform.localPosition = new Vector3(transform.position.x, newY, transform.position.z);

其中newY表示我想要给对象变换的新y值。

但结果却是如此 enter image description here

显然,物体绕世界y轴上升。 那么我怎么能用它自己的y轴(黄色箭头)?

2 个答案:

答案 0 :(得分:1)

transform.up * distance_to_move添加到对象的位置,以沿着自己的旋转Y轴移动它。

答案 1 :(得分:0)

原因是图片中显示的对象没有父对象。在这种情况下,transform.localPosition与transform.position。相同。

您可以在世界轴上计算自己的y轴方向,然后移动它。例如,您可以使用Transform.TransformDirection将方向从本地空间转换为世界空间。

Vector3 RelativeDirection = gameObject.transform.TransformDirection(0, 1, 0);

RelativeDirection可能是您想要的方向。