Unity的碰撞检测(三)

news2024/11/15 15:35:38

温馨提示:本文基于前一篇“Unity的碰撞检测(二)”继续探讨两个游戏对象具备刚体的碰撞检测,阅读本文则默认已阅读前文。

(一)测试说明

       在基于两个游戏对象都具备碰撞器和刚体且属性一致的条件下,若二者刚体的BodyType有所不同是否会出现不同的测试结果。

       本次测试我们约定如此:Player与Enemy都具备碰撞器和刚体,默认属性如图1和图2所示:

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

(二)测试用例

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

游戏对象

测试用例序号

Static

Kinematic

Dynamic

Player

A1

×

×

A2

×

×

A3

×

×

Enemy

B1

×

×

B2

×

×

B3

×

×

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

组合序号

测试用例组合

控制台输出

G1

A1、B1

G2

A1、B2

G3

A1、B3

Collider输出

G4

A2、B1

G5

A2、B2

G6

A2、B3

Collider输出

G7

A3、B1

Collider输出

G8

A3、B2

Collider输出

G9

A3、B3

Collider输出

(三)测试总结

      分析1:由G1-G3可知,当Player的刚体的BodyType为Static时,仅当Enemy的刚体的BodyType为Dynamic才会产生有效碰撞。

       分析2:由G4-G6可知,当Player的刚体的BodyType为Kinematic时,仅当Enemy的刚体的BodyType为Dynamic才会产生有效碰撞。

       分析3:由G7-G9可知,当Player的刚体的BodyType为Dynamic时,无论Enemy的刚体的BodyType为什么都会产生有效碰撞。

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

       结论1:两个游戏对象发生有效碰撞的必要条件之一是至少有一个游戏对象的刚体的BodyType为Dynamic。

(四)问题

       本文的测试结果进一步验证了前文的结论5,但是本文仅针对有效碰撞进行了测试,而针对有效触发的测试是否也是同样的结果呢?我们在下一篇继续探讨吧。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用数据分析可视化图表解析之【雷达图】

雷达图(Radar Chart) 基础介绍 雷达图是一种常用的数据可视化图表,通过使用多边形的边和顶点来表示多个变量或维度的数据。每个变量或维度对应于雷达图的一个轴,数据值则通过距离中心点的距离来表示。 雷达图可以直观地展示不同…

为何各大厂现在只招测试开发了?

近期闲着无聊晚上有空会刷下boss,发现现在各种互联网大厂绝大部分测试相关岗位都变成了测试开发工程师,这就是说就算最后是被拉去做业务测试,也得具备测试开发的能力了,这是间接把行业门槛变高了??那不会测…

项目管理-2023西电网课课后习题答案-第五章

文章目录 第五章答案1-10 [✅] 第一章答案[✅] 第二章答案[✅] 第三章答案[✅] 第四章答案[✅] 第五章答案 第五章答案 1-10

Vue标准插槽和作用域插槽区别与用法详解

文章目录 1. 标准插槽(Standard Slots)2. 作用域插槽(Scoped Slots)3.标准插槽Vs作用域插槽4.作用域插槽高级用法1. 作用域插槽中的默认值2. 作用域插槽的多个插槽3. 作用域插槽的动态插槽名4. 作用域插槽中的函数传递 5.作用域插…

王道p149 3.编写后序遍历二叉树的非递归算法(c语言代码实现)

本题代码如下 void postorder(tree* t) {struct treenode* stack[100];//初始化结构体数组int top -1;//让栈顶指向-1treenode* p *t;while (p || top ! -1)//p不为空,并且栈不为空{if (p){top;//p不为空,将p压入栈中stack[top] p;p p->lchild;/…

thinkphp6项目使用多应用开发

使用composer安装项目,命令:composer create-project topthink/think thinkphp6使用多应用开发,安装多应用扩展,命令:composer require topthink/think-multi-app安装多应用扩展成功后,删除app/controller文…

编译报错 internal compiler error: Segmentation fault 解决方法

问题描述 最近在使用虚拟机 ubuntu 20.04 编译 musl gcc 工具链时,遇到一个奇怪的问题,编译过程中异常退出,清理了多次重新编译,发现编译报错提示的信息是 internal compiler error: Segmentation fault 由于之前是可以正常编译的…

java 接口返回乱码 接口中文返回乱码 请求接口返回\u5317\u4eac乱码 okhttp请求返回中文乱码

1. 对接第三方请求,返回参数中文乱码,如下图所示。 2. 原因:中文被unicode编码导致。okhttp设置返回编码格式也不生效: // String result new String(response.body().bytes(), "utf-8");3. 解决方案&…

JS三种常见的存储机制

1.localStorage localStorage是HTML5引入的一种持久化存储机制,用于在浏览器中长期保存数据。localStorage中存储的数据没有过期时间,除非被显式清除或代码删除。存储在localStorage中的数据对于同一个域名下的所有页面都是共享的。localStorage可以存储…

香港优才计划线上申请官网入口地址在此,附自己申请攻略!

香港优才计划线上申请官网入口地址在此,附自己申请攻略! 2023年4月份开始,香港入境处调整了优才计划申请方式。申请人须使用电子化服务递交有关申请,也就是线上申请!入境处不再接受亲身递交、以邮递或投递方式递交的有…

腾讯云抱歉不满足产品首购条件解决方法

购买腾讯云服务器提示“抱歉,检测到相同实名认证主体已购买,不满足产品首购条件,您可了解其他商品。”,购买腾讯云特价云服务器是有新用户首购限制的,说当前腾讯云认证主体的其他账号已经购买过云服务器,一…

WAS项目更新单个文件

WAS项目更新单个文件 websphere替换单个文件时,相对路径是ear目录作为根路径 ‍ ‍ 比如要替换zjyct_testgkjz.jsp,路径只要填写BocGkjzWeb.war/zjyct_testgkjz.jsp,如果填写绝对路径,将造成如上图find出来的第一条所示结果问题 ‍

什么是有效种草!900万播放成B站“网红品牌”

- 导语 众所周知,B站早期是二次元小众社区,所以ACG(动画、漫画、游戏三者的合称)内容一直是B站的核心品类,B站经过多品类内容的摸索和发展,一直到现在成为年轻一代聚集的多元化社区,但ACG内容仍…

C++宏的作用

四种预编译命令:头文件包含&#xff0c;条件编译&#xff0c;宏替换和布局控制。 1.头文件包含 #include 文件分别用两种形式包含&#xff0c;一种将文件用“”包含&#xff0c;另一种用<>包含。 两种包含方式的不同之处在于&#xff0c;它们的查找策略不同。 #incl…

【递归、搜索与回溯算法】第五节.129. 求根节点到叶节点数字之和和814. 二叉树剪枝

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…

基于Java的医药进销存管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

CMake 坑之添加文件后不修改CMakeList.txt,则文件加不进来

问题&#xff1a; 我在一个文件夹中加了一个.h和对应的cpp。 这里.h中的类会被导出。 但是怎么都导不出来。 我试了无数次的 clean and rebuild 都没用。 分析&#xff1a; 做了很多实验。发现是新建的文件没有被读取进来。 解决方法&#xff1a; 改进了下对应的CMakeL…

嵌入式软件工程师面试题——2025校招专题(三)

说明&#xff1a; 面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但在这里博主希望每一个题目&#xff0c;大家都要…

Ubuntu 安装 docker-compose

在Ubuntu上安装Docker Compose&#xff0c;可以按照以下步骤进行操作&#xff1a; 下载 Docker Compose 二进制文件 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker…

【static + 代码块+toString打印对象】

文章目录 static成员static修饰成员变量static成员变量初始化代码块 对象的打印写show方法打印对象调用toString打印对象 总结 static成员 举例&#xff1a;一个班的学生&#xff0c;在实例化每个人的名字&#xff0c;年龄&#xff0c;学号等学员信息时都不一样&#xff0c;但…