unity3d - [已解决 - 使用网格碰撞器在 X 和 Y 上进行 3D 运动
问题描述
我正在使用自上而下的相机制作 3D 小行星克隆。这个设置是静态的,不会改变(所以不,我不想将项目转换为 2D 游戏)。
这意味着我需要将所有运动限制在 X 和 Y 轴上。我为小行星和玩家创造了运动,一切都很好。所有动作都是AddForce
在各自的RigidBody
组件上完成的。
问题是我开始处理碰撞。我使用Mesh Collider
组件来获得良好而精确的“触摸反应”。问题是当发生这样的碰撞时,新的运动矢量的 Z 值不为 0。这是一个问题,因为对象将开始在 Z 轴上移动。
我尝试了什么:
- 冻结刚体上的约束
Update
在功能中手动重置 Z
第一个解决方案(冻结约束)不起作用,第二个也没有(此外,第二个似乎很混乱)
所以问题是
在使用精确碰撞时,将基于物理的运动仅强制到 X 和 Y 轴的最佳方法是什么Mesh Colliders
?
解决方案
你确定你正确使用了位置限制吗?您可以检查以使用文档中的向量设置限制。https://docs.unity3d.com/ScriptReference/RigidbodyConstraints.FreezePosition.html 看看它是如何完成的。如果没有,请分享您在编辑器中尝试的刚体限制的代码或屏幕截图
推荐阅读
- angular - 如何在 div 中使用对一组 div/web 元素进行分组?
- ruby-on-rails - AdminLTE 插件 Rails 6 Webpacker 在生产中预编译
- laravel - Laravel 雄辩的关系总是给我空
- protocol-buffers - 基于 nanopb 的 TCP 客户端无法与 Java TCP Netty 服务器交互
- spring - Heroku FlywayException:无法自动检测 url 的 JDBC 驱动程序
- sapui5 - 如何在 UI5 中获取 smartTable 的选定行
- php - POST 方法
- php - 前端的 Wordpress 编辑帖子去除换行符,添加“rn”文本
- python - 当我执行“mkvirtualenv myenv”时出现错误
- dotnetnuke - 如何将 PortalId 获取到用于 2sxc 可视化查询的 sql 脚本中