我如何为电梯添加碰撞器以防止角色穿过物体?

How can i add a collider for the elevator to prevent from the character to walk through the object?

角色可以进入电梯,但问题是他也可以从侧面和后面穿过墙壁。

如果我添加一个盒子碰撞器或任何其他 collider/s 它们将阻止角色进入电梯。这不是我的电梯对象,它是用搅拌机制作的。

这类问题最好放在 Unity Answers 中,因为这不是编程问题。请在以后的问题中记住这一点。

虽然要回答你的问题,

在 Unity 的项目文件中找到网格,'Generate Colliders' 有一个复选框 - 选中此框并按应用。 最后,在带有网格的游戏对象上,添加一个 MeshCollider 组件。

如果模型设置正确,您的网格碰撞器现在应该使用该模型进行碰撞。

如果这不起作用,作为替代方案,您可以自己使用带碰撞器的立方体和 'build' 碰撞网格,并将对象作为同一对象的父对象,以便它们随升降机一起移动,然后再禁用MeshRenderer 组件,因此它们不会呈现。

使用 Compound Collider 而不是 Mesh Collider。

创建名为 back、front、right、left、top 和 bottom 的新空游戏对象 然后将 Box Collider 附加到每个。手动调整大小并移动每一个以匹配电梯四面八方的大小。

完成后,将它们放在一个空的父游戏对象中,然后将该父游戏对象放在您的电梯游戏对象下,这样碰撞器就会 move/rotate 与电梯。最后,当您想让玩家进入电梯时,通过代码禁用或移动前面的 Collider GameObject。

下图显示了单个对撞机的外观示例和最终外观: