现在,我有一个对象,其中我只知道 x 和 z 位置。如果我把它放在一个非常高的 y 坐标上,我会得到一个它向地面掉落的动画。我想跳过这个并立即让它在地面上。我该怎么做?
将物体放置在远高于地面的任意 Y 轴位置,然后将光线向下投射到地面并将物体移动到命中位置。
伪代码:
transform.position.y = 200f; if (Physics.Raycast(transform.position, Vector3.down, out var hit)) { transform.position = hit.point; }
您可以使用 Raycast 或 Boxcast 来确定从对象底部到它下面的下一个对撞机的距离。然后从对象 transform.position.y 中减去这个距离。