当前位置:首页 >> 核电技术聚变聚能设备 >> 【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”,空间黑色皮肤代码

【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”,空间黑色皮肤代码

cpugpu芯片开发光刻机 核电技术聚变聚能设备 5
文件名:【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”,空间黑色皮肤代码 【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:unity每日一记

⭐🅰️推荐文章⭐

⭐【软件设计师高频考点暴击】

⭐【Unityc#专题篇】之c#系统化大礼包】

⭐【unity数据持久化】数据管理类_PlayerPrfs

⭐【unity本站最全系列】unity常用API大全一篇文章足以


⭐⭐

文章目录 ⭐🅰️推荐文章⭐⭐⭐🎶(==O==)Ray射线检测射线声明Physics.Raycast<font color=red > 普通射线RaycastHit <font color=red >物体信息类Physics.RaycastAll <font color=red > 得到多个物体信息Physics.RaycastNonAlloc <font color=red >返回的碰撞的数量 ⭐🅰️系统路线学习点击跳转⭐




🎶(O)Ray射线检测

特点 只需要判断一条线和物体的碰撞情况 可以在指定点发射一个指定方向的射线 判断该射线与哪些碰撞器相交,得到对应对象 瞬时

应用场景 1.鼠标选择场景上一物体 2.FPS射击游戏(无弹道-不产生实际的子弹对象进行移动)等

射线声明

API

Ray X = new Ray(Vector3.right, Vector3.forward); 参数一参数二起点方向X.originX.direction Ray XX = Camera.main.ScreenPointToRay(Input.mousePosition); 屏幕视口坐标转成射线——鼠标点击的地方变成射线 Physics.Raycast 普通射线
Physics.Raycast 无法检测碰到了谁,只会检测碰到了没有

最多有16个重载

Physics.Raycast常用参数作用参数一射线参数二检测的最大距离 超出这个距离不检测参数三检测指定层级(不填检测所有层)参数四是否忽略触发器 UseGlobal-使用全局设置 Collide-检测触发器 Ignore-忽略触发器 不填使用UseGlobal返回值bool 当碰撞到对象时 返回 true 没有 返回false //第一种写法Physics.Raycast(XX, 1000, 1 << LayerMask.NameToLayer("层级名字"), QueryTriggerInteraction.UseGlobal )//第二种写法Physics.Raycast(Vector3.right, Vector3.forward, 1 << LayerMask.NameToLayer("层级名字"), QueryTriggerInteraction.UseGlobal )
RaycastHit 物体信息类 RaycastHit 物体信息类——得到相交的单个物体物理信息 RaycastHit 在Physics.Raycast的应用作用参数一射线参数二out RaycastHit 为什么是out ?RaycastHit是结构体 是值类型 out加上去就变成了引用类型,而RaycastHit没有复制所以不用ref参数三检测的最大距离 超出这个距离不检测参数四检测指定层级(不填检测所有层)参数五是否忽略触发器 UseGlobal-使用全局设置 Collide-检测触发器 Ignore-忽略触发器 不填使用UseGlobal返回值bool 当碰撞到对象时 返回 true 没有 返回false //写法一RaycastHit YY; if( Physics.Raycast(XX, out YY, 1000, 1<<LayerMask.NameToLayer("层级名字"), QueryTriggerInteraction.UseGlobal) )//写法二if( Physics.Raycast(Vector3.right, Vector3.forward, out YY, 1000,1<<LayerMask.NameToLayer("层级名字"), QueryTriggerInteraction.UseGlobal) ) 碰撞到物体的名字 YY.collider.gameObject.name;碰撞到的点 YY.point法线信息 YY.normal碰撞到对象的位置 YY.transform.position碰撞到对象 离自己的距离 YY.distance等等
Physics.RaycastAll 得到多个物体信息
RaycastHit[] XX= Physics.RaycastAll——得到相交的多个物体物理信息

特点: 先碰到的在数组的后面


Physics.RaycastNonAlloc 返回的碰撞的数量
Physics.RaycastNonAlloc——返回的碰撞的数量 通过out得到数据 if((r3, XX, 1000, 1 << LayerMask.NameToLayer("Monster"), QueryTriggerInteraction.UseGlobal) > 0 ){} ⭐🅰️系统路线学习点击跳转⭐

⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

⭐【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

⭐【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!、



协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接