拖拉机与Unity 3D上的对撞机

时间:2017-03-29 14:20:40

标签: c# unity3d

我正在使用C#在Unity 3D上创建一个简单的CAD应用程序来配置壁橱。我试图限制架子的移动,这样你就可以只在洞上移动它们,所以我有一个拖拉机连接到我想移动的每个壁橱上,但显然它们可以相互交叉。

我以为我可以使用Unity有限制这种运动的对撞机系统但是因为我没有和Unity一起工作,所以我有点失落。到目前为止,这是我的拖拉机:

mousePosition = new Vector3(Input.mousePosition.x, cubo_tmp.transform.position.y, distance);
        objPosition = Camera.main.ScreenToWorldPoint(mousePosition);
        objPosition.Set(objPosition.x, cubo_tmp.transform.position.y, cubo_tmp.transform.position.z);

我保留y和z组件,使其只能朝一个方向移动。

1 个答案:

答案 0 :(得分:1)

Box Colliders最适合长方体形状的物体。

在编辑器中,如果单击GameObject> 3d对象> Cube,Unity将为您的场景添加一个带有Box Collider的立方体:

如果要将Box Collider添加到没有Box Collider的游戏对象,请在“检查器”面板中单击“添加组件”,然后键入“Box Collider”以查找它。它看起来像这样:

Box Collider

注意:如果选中IsTrigger框,则碰撞器将充当触发器而不是碰撞器。

带有碰撞器的GameObject将与任何其他具有碰撞器的GameObject“碰撞”,其中一个小例外涉及两个都设置为凸面的网格碰撞器。

编辑:我认为您可以交叉对象,因为您正在代码中直接修改Transform.position。这可能会覆盖碰撞行为。

另请转到编辑>项目设置>物理并确保您的图层碰撞矩阵允许放置对象的图层发生碰撞。