c# - Unity地形对撞机间歇性丢失碰撞
问题描述
我正在尝试使用地形工具。该应用程序有一个代表四轴飞行器的立方体 (0.2x0.2x0.05) 飞来飞去。它有一个对撞机(未设置为触发器)和刚体。它由 addforce() 等控制 - 即它的位置和旋转不会直接改变。
它在由基元(立方体、球体等)构建的场景中非常可靠地工作。
我现在正在试用 Unity 地形工具包(我正在使用编辑器 2019.3),并有一个带有岩石、碎石和沙层的简单测试地形(500x500m)。
我发现有时当它直接飞入地形只是为了检查会发生什么时,它会直接穿过。通常它会发生碰撞,但并非总是如此,也许是 50:50。
FixedUpdate() 速率是标准的 20mS。
我不确定我是否错过了任何步骤?我只是在地形上使用所有默认设置。它有标准的网格对撞机。它不只是作为触发器或任何东西设置的(无论如何,大多数情况下它都可以正常工作)。
这是我做过/没有做过的事情,还是这是一个已知问题 - 有解决方法吗?
停止按下:测试仍在进行中,但感觉这可能与刚体中选择的碰撞类型有关 - 请参阅下面的答案。
解决方案
测试仍在进行中,但很明显这与刚体中选择的碰撞类型有关。默认值是离散的,但是 Unity 文档中有信息表明,对于快速移动的物体,可能需要使用连续的(以一定的 CPU 成本)以避免错过一些碰撞。
自从类型更改为连续后,问题就没有发生过。毕竟,四轴飞行器是一个移动速度非常快的机身,时速高达 150 公里,而且很小。
推荐阅读
- python - 从字符串和列表中删除python输出中的引号
- java - onBindViewHolder 上的代码在获取数据之前运行:java.lang.IndexOutOfBoundsException:索引:5,大小:5
- python - 基于当前和前一行数据的自动计算列,将用于即将到来的行 SQL、Django
- amazon-web-services - AWS IAM 策略仅列出基于 EC2 标签的实例
- mongodb - 将十进制转换为字符串 - 猫鼬
- authentication - How would I make it so a flask API can only be used with my ReactJS app?
- vue.js - 在 Vuex 中为同一组件实现双向数据绑定的不同方法
- html - scss 文件中的无效属性
- java - OOP 中“抽象”的正确定义是什么?
- python - str.replace 除非字符串后跟某些文本