当前位置: 首页 > news >正文

Unity的碰撞检测(六)

温馨提示:本文基于前一篇“Unity的碰撞检测(五)”继续探讨两个游戏对象具备刚体的BodyType均为Dynamic,但是Collision Detection属性不同的碰撞检测,阅读本文则默认已阅读前文。

(一)测试说明

       在基于两个游戏对象都具备碰撞器和刚体的前提下,如果碰撞器属性一致,而一个游戏对象的刚体的BodyType为Dynamic,另一个为Kinematic,除了Collision Detection属性不一致,其它属性保持一致,那么会对碰撞检测产生什么影响?

       本次测试我们约定如此:Player与Enemy都具备碰撞器和刚体,Player的刚体的BodyType为Dynamic,而Enemy的刚体的BodyType为Kinematic,且仅Player进行高速碰撞,默认属性如图1和图2所示:

图 1 碰撞器默认属性
图 2 刚体默认属性

(二)测试用例

表 1 Player和Enemy的刚体的Collision Detection测试用例

游戏对象

测试用例序号

Discrete

Continuous

是否高速碰撞

Player

A1

×

A2

×

Enemy

B1

×

×

B2

×

×

表 2 测试用例的控制台输出

组合序号

测试用例组合

测试结果

G1

A1、B1

1.碰撞穿透无Collider输出

2.Collider输出无碰撞穿透

3.Collider输出且碰撞穿透

G2

A1、B2

Collider输出无碰撞穿透

G3

A2、B1

Collider输出无碰撞穿透

G4

A2、B2

Collider输出无碰撞穿透

(三)测试总结

       分析1:由G1可知,当Player和Enemy的刚体的Collision Detection均为Discrete时,高速碰撞产生的碰撞检测结果不稳定。

       分析2:由G2-G4可知,当Player或Enemy的刚体的Collision Detection为Continous时,高速碰撞始终产生Collider输出且无碰撞穿透。

       由以上分析可得以下结论:

       结论1:两个游戏对象在发生有效碰撞的前提下,要能够正确进行碰撞检测和避免碰撞穿透则至少有一个游戏对象的刚体的Collision Detection为Continous。

(四)问题

       本文所得到的结论与前文一致,但是二者的测试条件有所不同,前文基于两个游戏对象的刚体的BodyType均为Dynamic,而本文则是一个游戏对象的刚体的BodyType为Dynamic,另一个为Kinematic。下一篇为Unity碰撞检测系列文章的总结篇,将对所有结论进行总结。

如果这篇文章对你有帮助,请给作者点个赞吧!  

http://www.lryc.cn/news/214435.html

相关文章:

  • 从前序与中序遍历序列构造二叉树
  • antd5上传图片显示405解决
  • 生成瑞利信道(Python and Matlab)
  • 数据结构Demo——简单计算器
  • java实现多文件打包压缩,导出zip文件
  • java-枚举类的使用
  • Vue插槽
  • 学习c++的第二天
  • Android NDK开发详解之调试和性能分析的系统跟踪概览
  • AD9371 官方例程HDL JESD204B相关IP端口信号
  • 蓝牙服务:优化体验,提高连接效率
  • SSM校园设备管信息管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
  • iOS的应用生命周期以及应用界面
  • Macos下安装使用Redis
  • Redis的四种部署方案
  • Microsoft Edge不能工作了,可能原因不少,那么如何修复呢
  • 算法---缺失的第一个正数
  • 【算法与数据结构】--算法应用--算法和数据结构的案例研究
  • java如何获取调用接口的ip?
  • ubuntu 18 更新git版本到 2.80.1
  • 测试C#调用Aplayer播放视频(2:VideoPlayer源码学习)
  • YOLOv5 分类模型的预处理
  • 25 行为型模式-备忘录模式
  • 物联网AI MicroPython传感器学习 之 SHT3X温湿度传感器
  • int* p = new int[5]; int *p = new int[5]();delete[] p; delete p;区别是什么?
  • 数据结构|基础知识定义
  • 物联网AI MicroPython传感器学习 之 MFRC522 RFID射频IC卡感应模块
  • 搭建ES集群
  • Tomcat的日志接收文件catalina.out nohup.out说明
  • 手机ip地址切换后有什么影响