【发布时间】:2020-08-07 20:09:44
【问题描述】:
我制作了一个模型来说明我要计算的内容。给定两个锚点之间的一条线(向量),我想将一个或多个游戏对象放置在与该向量的中点相切的一定距离处,并沿垂直于向量的圆以指定的角度(弧度?)放置。
在这个插图中,一个假想的圆放置在中点并垂直于 Anchor 1 和 Anchor 2 之间的线。我想计算三个点(P1、P2 和 P3)的 Vector3 位置。目的是在每个点放置对象。整个组件将是一个可以在空间中旋转的游戏对象。 (将有一个游戏对象,每个对象都有一个子对象。)
我搜索了 StackOverflow 和 Unity 社区,但找不到可以帮助我做出这三个展示位置的示例。
有什么想法吗?
【问题讨论】:
-
输入的具体内容是什么?
Vector3 Anchor1;和Vector3 Anchor2;和半径float r;? -
我会有这些输入。我已经尝试过
RotateAround(Vector3 point, Vector3 axis, float angle)以及其他尝试。困难在于将这些点放置在半径为r且与顶部中心偏移n度的假想圆上。 -
我的三角函数不足。
-
我可以将单个对象放置在距中点指定距离处。它在垂直于该锚线的假想平面中围绕同一点旋转/环绕其他物体。
-
所以,基本上:你想在一个圆上的等距点实例化 N 个游戏对象,然后变换圆,使其以线段的中点为中心并旋转,使其平面垂直于线段?如果您已经可以对一个对象执行此操作(如您所述),则对子层次结构的根执行此操作是一回事。