首页 > 解决方案 > 预测旋转后的变换位置

问题描述

我有一个 GameObject 和一些是它的子对象。

我要旋转这个游戏对象,但我想预测他的孩子是否会发生碰撞,所以我可以避免旋转。为此,我需要在实际旋转父对象之前预测每个子对象的最终位置。

我正在像这样旋转父母:

transform.Rotate(x, y, z, Space.World);

在这个旋转操作之后,如何预测每个孩子的结束位置?

标签: unity3dgeometrytransform

解决方案


我想我解决了这个问题。我使用了这个功能:

private Vector3Int RotatePointAroundPivot(Vector3 point, Vector3 pivot, Vector3 angles) {
    returnQuaternion.Euler(angles) * (point - pivot) + pivot;
}

它显然在世界空间坐标中围绕另一个点旋转一个点,所以我传递了子位置 in point,父位置 inpivot和 a new Vector3(x, y, z)in angles。结果似乎是旋转后孩子的最终位置。


推荐阅读