unity 碰撞检测的四种检测模式
四种检测模式
- Discrete:离散检测
通过在物理间隔时间中检测碰撞来工作
对场景中的所有其他碰撞体使用离散碰撞检测,其他碰撞体在测试碰撞时会使用离散检测。
用于正常碰撞(默认值)
缺点: 快速移动 的物体可能会错过碰撞检测,可通过减少物理计算间隔时间,但会影响性能
- Continuous:连续检测
通过collider线性向前移动到下一帧的投影点来实现检测,就像一个boxcase检测
这种 模式非常耗费性能
对动态碰撞体(具有刚体)使用离散碰撞检测
对静态碰撞体(没有刚体)使用连续碰撞检测
设置为连续动态的刚体,将在测试与该刚体的碰撞时使用连续碰撞检测(物理性能消耗较大,物体运动缓慢时请设置为 Discrete)
其他刚体将使用离散碰撞检测
- Continuous Dynamic:连续动态检测
非常耗费性能,只有当需要多个高速物体之间的精准碰撞时才使用
对设置为连续和连续动态碰撞的对象使用连续碰撞检测
对静态碰撞体(没有刚体)使用连续碰撞检测
对其他碰撞体使用离散碰撞检测
用于快速移动的对象
- Continuous Speculative:连续推测检测
通过在当前对象周围画一个边界框来计算碰撞,会更加物体的线性运动和角度运动来推测未来的位置。
对刚体和碰撞体使用推测性连续碰撞检测
通常比连续碰撞检测的成本更低
缺点:会有虚假碰撞的情况,也就是两个快速移动的物体没有接触的情况下也发生了碰撞
总结:四种检测模式的选择
1.如果可以的话,尽量使用Discrete
2.如果物体有穿透或有快速的角度运动选择Speculative
3.如果有虚假碰撞的情况或者还是有穿透选择Continuous
4.如果需要多个高速移动的Collider,选择Continuous Dynamic,注意限制数量
unity 碰撞检测的四种检测模式相关推荐
- 序列检测器(两种设计方法和四种检测模式|verilog代码|Testbench|仿真结果)
序列检测器 一.前言 二.状态机法和寄存器法 2.1状态机法 2.11 使用状态机检测"1001" 2.12 verilog代码 2.13 testbench 2.14仿真结果 2 ...
- Android Activity:四种启动模式,Intent Flags和任务栈(转自他人博客)
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.那各个页面跳转关系如何决定呢?如果启动了顺序启动了ABCD的Activiy,如何从D调回 ...
- Linux链路聚合,链路聚合四种工作模式
一.基础知识 链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端 ...
- stm32芯片休眠模式_STM32的运行、睡眠、停止和待机四种工作模式
01 前言 按功耗由高到低排列,STM32具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中, ...
- PHP的四种运行模式
PHP的四种运行模式 1.CGI 2.FAST-CGI 3.CLI 4.模块模式(Apache等web服务器运行的模块模式) 一.CGI(Common Gateway Interface) CGI即通 ...
- 函数的四种调用模式.上下文调用.call.apply
闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...
- JavaScript中函数四种调用模式
目录 JS中函数的四种调用模式 函数调用模式 方法调用模式 构造器调用模式 上下文调用模式 JS中函数的四种调用模式 在函数的调用模式中感觉最大的区别就是: this指向 函数调用模式 即通过函数名直 ...
- Android Activity的launchMode四种启动模式备忘
Android Activity的launchMode四种启动模式备忘 Android的Activity的启动模式有四种,在AndroidManifest.xml通过配置Activity的androi ...
- AndroidManifest.xml文件详解(activity)(三)四种工作模式
android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...
最新文章
- 如何查找主机的型号、操作系统安装时间、硬盘序列号和设备序列号
- [svc]ext4文件删除访问原理
- 【Linux 内核】实时调度类 ② ( 实时调度实体 sched_rt_entity 源码分析 | run_list、timeout、watchdog_stamp、time_slice 字段 )
- AIX 5.3安装Oracle 10g错误案例--ruInstaller
- PHP的php://
- c++ 遍历所有点且距离最短_C/C++ 图的最短路径 Dijkstra 算法
- SpringBoot的配置文件加载顺序和使用方式
- CSS :root 测试
- linux下g++和gcc_Linux中gcc和g ++有什么区别?
- ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】
- oracle12 快照保存时间,【AWR】调整AWR数据采样时间间隔及历史快照保留时间
- 让你的原创设计作品展示给世界
- java 日期 相差的天数_JAVA计算两个日期之间相差的天数
- 【光学】基于matlab涡旋光与球面波的干涉【含Matlab源码 597期】
- IPO屡战屡败 而立之年WPS 能否闯关成功?
- 500强企业专家级面试果然是噩梦级,吐血分享成功经验
- 2021广州城市信息模型(CIM)白皮书发布
- 编写仿supersu的权限管理工具(aosp11 root、实现aosp系统内置wifi、root管理apk)
- 西门子PLC内部的数据类型大全
- 游戏上云成标配 云服务器该怎么选?