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

Posted

技术标签:

【中文标题】如何在 Unity 中更改对象的轴心点【英文标题】:How To Change The Pivot Point Of An Object In Unity 【发布时间】:2018-10-08 18:53:06 【问题描述】:

我有一个问题。我想让对象的枢轴点位于对象的末端而不是中心。这是我正在创建的人工智能,我需要一个不可见的矩形来查看玩家,我这样做是为了检测是否有障碍物 - 我已经在使用光线投射,但有时在某些角度线感觉不到障碍物,因此我也需要隐形矩形。虽然,问题是有时矩形会从它后面捡起障碍物,因为它围绕自身的中心而不是末端旋转。它看起来像这样:

顺便说一句,我正在使用 C#。

我用来让矩形看播放器的代码是:

transform.LookAt(player.transform.position);

那么,如何使用我拥有的代码使矩形的枢轴点位于它的末尾,这样矩形就不会在它后面拾取碰撞。

print("感谢所有帮助!");

:D

编辑:

我按照 Zackary 所说的做了,它工作正常,只是它是倒退的 - 我该如何解决这个问题?

【问题讨论】:

使矩形成为空游戏对象的子对象。从空游戏对象偏移矩形,以便空游戏对象是您想要枢轴的位置。旋转空的游戏对象而不是矩形的游戏对象。 谢谢,您能否将其作为答案,以便我接受您的努力? 【参考方案1】:

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

1.定义自己的几何图形

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

2。锚点

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

【讨论】:

尝试否定矩形的相对位置。乍一看,您似乎将矩形放在了远离玩家的敌人的点上(使敌人看起来面朝后)。编辑:让我的矩形和敌人倒退。【参考方案2】:

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

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

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

它允许您在统一编辑器中方便地修改枢轴位置和旋转,它还为您提供各种有用的选项,例如枢轴捕捉,使您可以更精确地操纵枢轴。它也适合检查器,不需要添加组件和从编辑器打开窗口。

【讨论】:

似乎有点不适合自我推销你在这里销售的东西。 我同意@ShaunDreclin。请注意,商店中还有多种其他资产可以免费执行此操作。

以上是关于如何在 Unity 中更改对象的轴心点的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D3D 物体概念 ① ( 轴心点概念 | 物体的父子关系 | 子节点相对坐标 )

Unity 对象不围绕枢轴点旋转

Unity---一些UI基础知识复盘(持续更新)

LAYABOX轴心点和锚点

如何设置 pygame.transform.rotate() 的轴心点(旋转中心)?

Unity3d中UGUI组件精简复盘RectTransform组件