首页 > 解决方案 > 在 Unity 中旋转后移动具有固定轴的物理按钮

问题描述

我正在尝试制作一个基于物理的按钮,如下所示。

按钮刚体

当施加力并击中触发器(浅灰色框)时,红色立方体应沿 Y 轴向下移动。

我通过使红色立方体成为刚体并冻结旋转和位置(Y 轴除外)来实现这一点。红色立方体通过 sprint 关节连接到触发器。

这工作得很好,直到我尝试旋转按钮的整个容器,然后按钮按下世界 Y 轴(下面的红色箭头)而不是它的本地 Y 轴(下面的绿色箭头)。

旋转后的运动

我怎样才能解决这个问题?谢谢!

标签: unity3dgame-physics

解决方案


想通了,这段代码将限制移动到局部 y 轴,并删除刚体组件上的冻结位置标志

void Update()
{
    transform.localPosition = new Vector3(0, transform.localPosition.y, 0);
}

推荐阅读