有哪些可以做宣传旅游的网站,沈阳推广平台哪个好,门户网站是不是新媒体,企业网站打包下载温馨提示#xff1a;本文基于前一篇“Unity的碰撞检测(四)”继续探讨两个游戏对象具备刚体的BodyType均为Dynamic#xff0c;但是Collision Detection属性不同的碰撞检测#xff0c;阅读本文则默认已阅读前文。
#xff08;一#xff09;测试说明 在基于两…温馨提示本文基于前一篇“Unity的碰撞检测(四)”继续探讨两个游戏对象具备刚体的BodyType均为Dynamic但是Collision Detection属性不同的碰撞检测阅读本文则默认已阅读前文。
一测试说明 在基于两个游戏对象都具备碰撞器和刚体的前提下如果碰撞器属性一致二者刚体的属性除了Collision Detection不固定其它属性保持一致。那么会对碰撞检测产生什么影响事实上Collision Detection属性并不是决定两个游戏对象是否发生碰撞的因素而是决定二者如何发生碰撞的因素所以测试指标我们还需要添加一个”是否高速碰撞”高速碰撞通过Rigidbody2D.AddForce方法实现力的大小数值为100ForceMode2D保持默认但是对于非高速碰撞的界定无法确认根据实际应用中碰撞时的情况灵活选择Discrete或Continous。 本次测试我们约定如此Player与Enemy都具备碰撞器和刚体且二者的刚体的BodyType均为Dynamic默认属性如图1和图2所示 图 1 碰撞器默认属性 图 2 刚体默认属性 二测试用例
表 1 Player和Enemy的刚体的Collision Detection测试用例 游戏对象 测试用例序号 Discrete Continuous 是否高速碰撞 Player A1 √ × √ A2 √ × × A3 × √ √ A4 × √ × Enemy B1 √ × √ B2 √ × × B3 × √ √ B4 × √ ×
表 2 测试用例的控制台输出 组合序号 测试用例组合 测试结果 G1 A1、B1 1.Collider输出无碰撞穿透 2.碰撞穿透无Collider输出 3.Collider输出且碰撞穿透 G2 A1、B2 1.Collider输出无碰撞穿透 2.碰撞穿透无Collider输出 3.Collider输出且碰撞穿透 G3 A1、B3 Collider输出无碰撞穿透 G4 A1、B4 Collider输出无碰撞穿透 G5 A2、B1 1.Collider输出无碰撞穿透 2.碰撞穿透无Collider输出 3.Collider输出且碰撞穿透 G6 A2、B2 无 G7 A2、B3 Collider输出无碰撞穿透 G8 A2、B4 无 G9 A3、B1 Collider输出无碰撞穿透 G10 A3、B2 Collider输出无碰撞穿透 G11 A3、B3 Collider输出无碰撞穿透 G12 A3、B4 Collider输出无碰撞穿透 G13 A4、B1 Collider输出无碰撞穿透 G14 A4、B2 无 G15 A4、B3 Collider输出无碰撞穿透 G16 A4、B4 无
三测试总结 分析1由G1、G2和G5可知当Player和Enemy的刚体的Collision Detection均为Discrete时无论二者谁进行高速碰撞测试结果都不稳定。 分析2由G3、G4、G7、G9-G13和G15可知Player和Enemy的刚体的Collision Detection至少有一个为Continous时无论二者谁进行高速碰撞测试结果都是Collider输出无碰撞穿透。 根据上述分析可得以下结论 结论1两个游戏对象在发生有效碰撞的前提下要能够正确进行碰撞检测和避免碰撞穿透则至少有一个游戏对象的刚体的Collision Detection为Continous。
四问题 本文针对两个游戏对象在满足有效碰撞的前提下对于二者的刚体的BodyType均为Dynamic但是二者的Collision Detection属性不同而产生不同的碰撞检测结果进行探讨。那么对于一个游戏对象的刚体的BodyType为Dynamic另一个为Kinematic而二者的Collision Detection属性不同会产生什么样的碰撞检测结果呢我们在下一篇“Unity的碰撞检测(六)”继续探讨吧。
如果这篇文章对你有帮助请给作者点个赞吧