1.用Physics.Raycast进行射线检测

物体必须有Collider碰撞组件。

//定义一条射线,起点为GO1的物体坐标,终点为GO2的物体坐标
Ray ray = new Ray(GO1.transform.position, GO2.transform.position - GO1.transform.position);//定义一个光线投射碰撞 RaycastHit hit; //发射射线长度为100 Physics.Raycast(ray, out hit, 100); if (hit.transform != null){Debug.Log("blocked:" + hit.transform.name);}//在Scene中生成这条射线,起点为射线的起点,终点为射线与物体的碰撞点
 Debug.DrawLine(GO1.transform.position,GO2.transforme.position);

如果射线是以GO2的物体的坐标,终点为GO1的物体的坐标,就得写成以下的方式。

Ray ray = new Ray(GO2.transform.position,GO1.transform.position - GO2.transform.position);

2.用Physics.Linecast进行射线检测

int layA = LayerMask.NameToLayer("Character");LayerMask bricksLayer = 1 << LayerMask.NameToLayer("Character");//LayerMask bricksLayer = 1 << layA;RaycastHit hit;if (Physics.Linecast(GO1.transform.position, GO2.transform.position, out hit, (1 << layA))){Debug.Log("blocked:"+hit.transform.name);}Debug.DrawLine(transform.parent.gameObject.transform.position, _player.transform.position);


下面这句话的意思是 射线遮罩,只对物体 的 Layer 是“Character”的物体,进行检测。

Physics.Linecast(GO1.transform.position, GO2.transform.position, out hit, (1 << layA)

总结:以上2种方法都能够 对2个物体之间 进行射线检测,并返回 被阻挡的物体。

参考文章:

1.

How to check if the collision line between two objects is free?

2.

Physics.Linecast

3.

Unity检测目标是不是在攻击范围内

4.

unity射线检测忽略某层的方法

5.

unity射线检测忽略某层的方法

[Unity][射线检测]检测两个物体之间是否有其他物体阻挡相关推荐

  1. unity 射线检测 碰撞点不准确的原因分析

    unity 射线检测 碰撞点不准确的原因分析 射线检测的时候,出现了碰撞的那个点位置总是上下不准确,但屏幕中心位置不受影响,越远离中心,越偏移. 无论是用鼠标,还是ui上的坐标都不准确. 下面是代码 ...

  2. Unity射线检测的用法总结

    RayCast 射线检测 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  3. MIDL2020赛事object-CXR(胸部X射线异物检测大赛)

    MIDL2020官方赛事object-CXR(胸部X射线异物检测大赛)正式启动 01 PART MIDL2020介绍: MIDL全称Medical Image with Deep Learning,专 ...

  4. unity+opencv实时检测人脸及眼睛区域检测

    这是最近做的一个工作,由于要调用电脑摄像头实时检测人眼主要是检测闭眼睁眼 ** 1.工具 ** 1.1unity(作者用的是2020.3.25 大部分版本都ok 1.2opencv for unity ...

  5. CVPR 2020夜间行人检测挑战赛两冠一亚:DeepBlueAI团队获胜方案解读

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文转载自:机器之心 近日,由 CVPR 2020 Workshop 举办的 NightOwl ...

  6. CVPR2020夜间行人检测挑战赛两冠一亚:DeepBlueAI获胜方案解读

    2020-06-22 11:24:27 机器之心专栏 作者:罗志鹏(深兰北京AI研发中心) 来自深兰科技北京 AI 研发中心的 DeepBlueAI 团队在 CVPR 2020 夜间行人检测挑战赛中斩 ...

  7. unity鼠标滑动检测

    Unity鼠标滑动检测 private Vector2 first = Vector2.zero; private Vector2 second = Vector2.zero; void Update ...

  8. Unity官方性能检测工具UPR使用心得

    Unity官方性能检测工具UPR使用心得 UPR是Unity官方推出的免费性能检测工具,近来功能较之前版本完善了许多,经笔者在正式项目中试用,与UWA的免费性能检测工具GPM作对比,发现UPR相较GP ...

  9. [Unity]限制两个物体之间的距离

    //限制两个物体之间的距离 if (Vector3.Distance(B.position, A.position) > maxDistance) {//获得两个物体之间的单位向量Vector3 ...

最新文章

  1. libcudart.so.10.0: cannot open shared object file: No such file or directory
  2. js在上传图片前判断大小
  3. how to fix error 25007 : loadlibraryshim()
  4. 【一天一个shell命令】【cut】
  5. 操作系统 哈工大 李治军
  6. linux c之STDIN_FILENO的作用及与stdin的区别
  7. 下列类型不是mysql_下列( )类型不是MySQL中常用的的数据类型。
  8. 数字货币交易所数据安全随笔
  9. C语言以二进制形式读入文件
  10. 九阴真经 服务器列表文件,《九阴真经》部分服务器互通升级公告
  11. html 文本框 p,Javascript实现HTML表单form多个HttpPost请求
  12. Docker容器解决没有Vim命令
  13. 详谈概率图模型(PGM)
  14. MuMu模拟器安装面具magisk24.1教程
  15. python小欢喜(八)俄罗斯方块 (3) 组合对象的旋转
  16. 有序回归: Ordinal Regression的理解
  17. AI大事件 | 谷歌的计算引擎鸟枪换炮用上了更快的GPU,基于Python的亚马逊AWS深度学习AMI
  18. 对小米路由器提出严正批评,2.4G下,40MHz自动变20MHz
  19. SystemUI 状态栏增加移动数据开启图标
  20. linux 查看gz文件,【shell 脚本】查看*.gz 文件的内容

热门文章

  1. 如何在vim创建脚本内添加固定的抬头信息?
  2. Unity 游戏开始UI设计
  3. python中try语句的用法和作用_python基础知识三——try与except处理异常语句
  4. 【codeforces 731D】80-th Level Archeology
  5. JAVA程序员装机必备软件攻略
  6. 操作无法完成.键入的打印机名不正确,或者指定的打印机没有连接到服务器上 !...
  7. 修改联通服务器密码怎么修改,联通宽带修改wifi密码怎么改?
  8. 高通camx debug log 控制 及 UseCase pipeline debug(四)
  9. 基于S2SH+ExtJS4+Oracle9i技术实战开发电子商业汇票系统(银行内系统通讯)
  10. cadence原理图和PCB文件不能双击直接打开解决办法