Unity 2d碰撞检测

news/2024/12/2 13:35:46/

碰撞检测

  • Collider2d 射线检测函数
      • Raycast 与 Cast 函数
      • Overlap 检测函数
      • 参数
    • PhysicsScene2D 类检测函数
    • Physics2D 类检测函数
    • MonoBehaviour 类碰撞检测函数

Collider2d 射线检测函数

Raycast 与 Cast 函数

Raycast 是发射一条射线
Cast 是把整个碰撞器作为射线投射出去

enable = false; 的情况下无效

返回值 是射线碰撞到碰撞器的数量

Overlap 检测函数

判断碰撞器范围内的其他碰撞器。此函数的检测效率比Raycast 与 Cast 高的多。但是检测结果只返回Collider2d信息,没有RaycastHit2D信息

参数

  • direction 射线方向
  • results 射线碰撞到物体的信息
  • contactFilter 碰撞器过滤 (cast)
    默认值:
    useTriggers 读取 Physics2d中的queriesHitTriggers 配置
    layerMask 读取当前Collider2d的层级
  • distance 射线发射距离
    默认值:
    无限距离
  • layermask 检测的layermask (Raycast)
    默认值:
    allLayer
  • ignoreSiblingColliders 是否忽略与当前物体刚体下的碰撞器
    默认值: true
    如果设置为true,要注意的是如果当前Collider没有刚体, 那么没有附近刚体的Collider都将检测不到

PhysicsScene2D 类检测函数

BoxCast CapsuleCast CircleCast Linecast Raycast 等检测函数。
向场景中投射射线,仅返回碰撞到的第一个交点。
PhysicsScene2D 实例 通过Scene.GetPhysicsScene2D获取

Physics2D 类检测函数

投射各种形状的射线,进行射线检测比如 Physics2D.Raycast , Physics2D.BoxCast 参数与上面 Collider2d 类中的射线检测函数类似。区别是Physics2D需要自行创建 射线的形状。

MonoBehaviour 类碰撞检测函数

  • OnCollisionEnter2D OnCollisionStay2D OnCollisionExit2D碰撞器,进入,停留,退出等函数想要触发这三个函数必须满足以下条件
    1.自身必须是碰撞器
    2.对方必须是碰撞器
    3.自身或者对方是 Dynamic 类型的刚体
  • OnTriggerEnter2D OnTriggerStay2D OnTriggerExit2D
    触发器,进入,停留,退出等函数
    触发的条件
    1.自身或者对方是触发器
    2.自身或者对方是刚体

http://www.ppmy.cn/news/11903.html

相关文章

适应性学习率

目录 适应性学习率 Adaptive learning rate 为什么不是临界点仍会导致训练停止 示例一示例二 RMSRMSPropAdam学习率还和时间有关 Learin Rate DecayWarm up 2021 - 类神经网络训练不起来怎么办(三) 自动调整学习率 (Learning Rate)适应性学习率 Adaptive learning rate 一般…

ASP.NET Core 3.1系列(26)——Autofac中的实例生命周期

1、前言 前面的博客主要介绍了Autofac中的一些注册方法,下面就来介绍一下Autofac中实例的生命周期。之前在介绍ASP.NET Core内置IoC容器的时候说过,实例的生命周期有:瞬时生命周期、域生命周期、全局单例生命周期,而Autofac在这三…

【5】K8S_Deployment

目录 1、Deployment作用 2、deployment的冗余能力 3、deployment的多副本部署 4、deployment的扩缩容 5、deployment的自愈能力 6、滚动更新 7、版本回退 1、Deployment作用 控制Pod,使Pod拥有多副本,自愈,扩缩容等能力 2、deployme…

【算法数据结构初阶篇】:位运算

算法中很多情况下需要用到各种位运算的转换&#xff0c;比如>>右移、<<左移、&与等等&#xff0c;下面我们利用这些位运算来进行一个进制转换&#xff0c;将一个int整形&#xff08;32位&#xff09;十进制转二进制&#xff0c;以及其他的一些转换技巧。 一、十…

【SpringCloud10】OpenFeign服务接口调用

1.概述 1.1OpenFeign是什么 官网 Feign是一个声明式WebService客户端&#xff0c;使用Feign能让编写Web Service客户端更加简单。 它的使用方法是定义一个服务接口然后在上面添加注解&#xff0c;Feign也支持可拔插式的编码器和解码器&#xff0c;Spring Cloud对Feign进行了…

用详细实例说明和典型案例实现对分治法进行全面分析 | C++

第一篇 分治法 目录 第一篇 分治法 ●前言 ●一、分治法是什么&#xff1f; 1.简要介绍 2.生活实例 ●二、分治法的典型案例——硬币问题 1.具体问题 2.代码展示&#xff08;C&#xff09; 3.程序代码结果展示 ●总结 前言 简单的来说&#xff0c;算法就是用计算机程序代…

Docker学习笔记

容器本质上是一个线程&#xff0c;相当于从物理机中开辟了一个空间&#xff0c;专门给到某个程序使用 镜像的本质是一个软件源&#xff0c;这个软件源往往还带有它的环境变量、配置信息 docker是一个管理容器的平台工具 当运行容器时&#xff0c;使用的镜像如果在本地中不存…

PostgreSQL数据库FDW——Parquet S3 DefaultParquetReader类

S3RandomAccessFile S3RandomAccessFile类定义在parquet_s3_fdw.hpp&#xff0c;用于访问s3对象存储的类。其成员函数定义在parquet_s3_fdw.cpp文件中&#xff0c;S3RandomAccessFile构造函数用于初始化private成员(offset设置为0&#xff0c;isclosed设置为false)。 class S…