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

Unity物理射线滤除某层

关键点:使用LayerMask,针对Physics里检测collider的射线(raycast、OverlapSphere...)都适用

1.使用layerMask过滤层

int ignoreLayer = LayerMask.NameToLayer("IgnoreRaycast");// 获取要忽略的层
int layerMask = ~(1 << ignoreLayer);// 取反,忽略这个层

if(Physics.Raycast(ray,out hit,maxDistance,layerMask))
{
    Debug.Log("射线击中了:"+ hit.collider.name);
}

        1 << ignoreLayer 计算出该层的二进制掩码

2.只检测某些层

if(Physics.Raycast(ray,out hit.maxDistance,LayerMask.GetMask("Enemy","Player")))
{

}

3.使用QueryTriggerInteraction只过滤触发器

如果只想忽略触发器(Trigger)的话

if(Physics.Raycast(ray,out hit,maxDistance,Physics.AllLayers,QueryTriggerInteraction.Ignore))
{
}

忽略 isTrigger = true 的Collider,只检测普通的碰撞体 

相关文章:

  • FPGA中级项目1——IP核(ROM 与 RAM)
  • 黑马JUC学习笔记-上
  • LabVIEW烟气速度场实时监测
  • 路径问题(greedy):地下城游戏
  • Word 小黑第40套
  • 微服务无状态服务设计
  • token升级(考虑在分布式环境中布置token,结合session保证请求调用过程中token不会过期。)
  • 数据结构第一轮复习--第二章线性表(包含课程作业代码)
  • 设计模式 二、创建型设计模式
  • Harmony NEXT开发之创建自定义组件
  • API 返回的PDF是一串字符,如何转换为PDF文档
  • ruoyi-vue部署2
  • Java学习——数据库查询操作
  • PHP工程师转向Java开发定制的教材及教程信息,结合两种语言的差异点进行针对性推荐
  • 搭建opensbi+kernel+rootfs及基本设备驱动开发流程
  • java使用(Preference、Properties、XML、JSON)实现处理(读写)配置信息或者用户首选项的方式的代码示例和表格对比
  • 基于 Python 爬取 TikTok 搜索数据 Tiktok爬虫(2025.3.17)
  • C++: <bits/stdc++.h>详细介绍
  • Kotlin语言基础笔记
  • 拦截网页中的 Fetch 和 XMLHttpRequest 请求方式方法
  • 秦洪看盘|热门股或将退潮,短线波动难免
  • 国家发改委:不断完善稳就业稳经济的政策工具箱,确保必要时能够及时出台实施
  • 上海蝉联全国中小企业发展环境评估综合排名第一
  • 四大皆空!赛季还没结束,曼城已经吃上“散伙饭”了
  • 国际博物馆日|在辽宁省博物馆遇见敦煌
  • 媒体:“重病老人银行取款身亡”涉事家属称已和解,银行将支付十万