如何在Unity中更改对象的枢轴点

时间:2018-10-08 18:53:07

标签: c# unity3d rotation

我有一个问题。我想使对象的枢轴点位于对象的末端而不是中心。这是针对我正在创建的AI的,我需要一个不可见的矩形来观察玩家,我正在这样做,以便可以检测是否有障碍物-我已经在使用光线投射,但有时以一定角度没有障碍物,因此我也需要不可见的矩形。尽管问题在于矩形有时会从其后面捡起障碍物,因为矩形围绕其中心而不是端部旋转。看起来像这样:

enter image description here

我正在使用C#。

我用来使播放器看起来像矩形的代码是:

transform.LookAt(player.transform.position);

那么,如何使用已有的代码使矩形的枢轴点位于矩形的末端,以免矩形在其后部发生碰撞。

print(“感谢所有帮助!”);

:D

编辑:

我按照Zackary所说的做了,除了它是倒退的以外,它都能正常工作-我该如何解决?

enter image description here

2 个答案:

答案 0 :(得分:3)

有两种常用方法:定义自己的几何图形和锚点。

1。定义自己的几何形状

如果您精通模型构建软件(例如Maya或Blender),它们通常会支持允许您指定几何图形中心点的工具。我相信,将这些模型导入Unity可以保留这些中心点。

2。锚点

也许最简单的方法是使用锚对象。只需创建一个空对象以用作您要在某个偏移量处旋转的模型的变换父对象,从锚点适当地转换子对象,然后将最初执行的任何变换应用于该锚对象(而不是子对象)。

答案 1 :(得分:0)

不幸的是,在Unity中,开箱即用无法修改实际的轴心。我知道这真的很烦人,这是我在Unity中一直想要的东西。因此,我决定为此创建一个编辑器实用程序。

您可以在这里试用我的资产:

https://assetstore.unity.com/packages/tools/utilities/pivot-modder-152501

它允许您从unity编辑器中方便地修改枢轴的位置和旋转,它还为您提供了各种有用的选项,例如枢轴捕捉,可让您更精确地操作枢轴。它也恰好位于检查器中,不需要添加任何组件,也不需要从编辑器中打开窗口。