news 2026/6/26 3:25:15

Unity学习笔记(十三)碰撞检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity学习笔记(十三)碰撞检测

碰撞和触发响应函数 属于特殊的生命周期函数 也是通过反射调用

物理碰撞检响应函数

接触时触发 自动执行这个函数

private void OnCollisionEnter(Collision collision) { print(this.name + "被" + collision.gameObject.name + "碰撞"); }

碰撞到的对象碰撞器的信息

collision.collider

碰撞对象的依附对象

collision.gameObject

碰撞对象的依附对象的位置信息

collision.transform

触碰点数相关

collision.contactCount

接触点 具体的坐标

ContactPoint[] pos =collision.contacts;

只要得到了碰撞到的对象 任意一个信息 就可以得到它的所有信息

碰撞结束分离时,会自动执行函数

private void OnCollisionExit(Collision collision) { //碰撞结束分离时,会自动执行函数 }

两个物体相互接触摩擦时,会不停调用改函数

private void OnCollisionStay(Collision collision) { //两个物体相互接触摩擦时,会不停调用改函数 }

触发器检测响应函数

和上面的类似 ,一个 是Collision ,一个是Collider

触发开始的函数,当第一次接触时,会自动调用一次

private void OnTriggerEnter(Collider other) {}

触发结束的函数 调用一次

private void OnTriggerExit(Collider other) { //触发结束的函数 调用一次 }

当相互接触时触发

private void OnTriggerStay(Collider other) { //当相互接触时触发 }

明确什么时候会触发响应函数

1. 只要挂载的对象能和别的物体产生碰撞或触发,那么对应的6个函数 就能被响应。
2. 如果一个异形物体,刚体在父对象上,子对象上挂脚本检测碰撞是不行的 必须挂载到这个刚体父对象上才行
3. 物理碰撞和触发器响应的区别

物理碰撞 (Physics Collision)

  • 物理模拟:会计算真实的物理效果,包括反弹、摩擦、动量传递等

  • 阻挡效果:物体会相互阻挡,不能穿透

  • 性能消耗:较高,因为需要计算复杂的物理交互

  • 典型应用:墙壁、地板、障碍物等需要真实物理交互的物体

触发器响应 (Trigger Response)

  • 无物理效果:不会产生实际的物理阻挡,物体可以相互穿透

  • 仅事件检测:只检测物体之间的接触,触发相应的事件

  • 性能消耗:较低,仅进行碰撞检测而不计算物理响应

  • 典型应用:收集物品、区域检测、陷阱区域等

碰撞和触发器函数都可以写成虚函数 在子类去重写逻辑

一般会把想要重写的 碰撞和触发函数 写成保护类型的,没有必要写成public

因为不会自己手动调用 都是反射帮助我们自动调用的

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 13:50:30

基于Wan2.2-T2V-A14B的AI导演系统原型设计思路

基于Wan2.2-T2V-A14B的AI导演系统原型设计思路 在影视与广告内容生产领域,一个长期存在的矛盾始终难以调和:创意的爆发性增长与制作流程的缓慢迭代。一部30秒的品牌短片,从脚本到成片,动辄需要数周时间、数十人协作;而…

作者头像 李华
网站建设 2026/6/25 22:03:48

【苍穹外卖-day12】

0. 今日总结 实现了工作台各项数据的显示了解了Apache POI:用于交互Microsoft的工具库基于Apache POI实现了导出运营数据excel报表 1. 工作台 1.1 需求分析和设计 1.2 代码开发 controller package com.sky.controller.admin;import com.sky.result.Result; import com.sky.…

作者头像 李华
网站建设 2026/6/25 20:09:30

C# AES加密在医疗系统中的真实应用案例(含完整源码与审计建议)

第一章:医疗系统中C# AES加密的应用背景 在现代医疗信息系统中,患者数据的隐私性和完整性至关重要。随着电子病历(EMR)、远程诊疗和健康数据云存储的普及,敏感信息如身份证号、诊断记录和用药历史面临更高的泄露风险。…

作者头像 李华
网站建设 2026/6/24 16:52:42

java计算机毕业设计球鞋商城系统小程序 基于SpringBoot的潮鞋微商城小程序设计与实现 JavaWeb限量球鞋交易平台小程序开发

计算机毕业设计球鞋商城系统小程序n1wr89 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。当“排队抽签”搬到微信入口,当“限量发售”被压缩成一次指尖轻点&#xff…

作者头像 李华