unity中的射线检测
unity中的检测包含了范围检测和射线检测
以下收录了唐老狮专栏的详解(唐老狮yyds)老师讲的特别简单易懂
【唐老狮】Unity——物理系统(射线检测) - 哔哩哔哩 (bilibili.com)
【唐老狮】Unity——物理系统(范围检测) - 哔哩哔哩 (bilibili.com)
在记录一则自己用到实例,是一个开启高亮显示的功能,就是从摄像机中心发射一条射线来记录接触的第一个物体
核心代码如下:
void SetInteractive()
{
Ray ray = new Ray(transform.position, transform.forward);
//检测是否对焦上物体
// RaycastHit用来保存射线的探测结果
RaycastHit info;
// 从muzzlepoint的位置,向摄像机面向的正方向射出一根射线
// 射线只能与m_layer所指定的层碰撞
bool hit = Physics.Raycast(ray, out info, InterDistance, m_layer);
string activeObjName = InterActiveManager.GetInstance().ActiveObjName;
//如果检测到物品 而且检测不重复
if (hit && activeObjName != info.transform.gameObject.name)
{
//就设置激活 激活后把当前激活的物品在管理类中进行一个设置
EventCenter.GetInstance().EventTrigger("SetInteractive" + info.transform.name);
InterActiveManager.GetInstance().ActiveObjName = info.transform.name;
}
//如果没有检测到物品 而且管理类中当前激活的物品不为空
else if (!hit && activeObjName!=null)
{
//先取消先前激活物品的激活状态 之后将管理类中的激活记号置为null
EventCenter.GetInstance().EventTrigger("CancelInteractive" + activeObjName);
InterActiveManager.GetInstance().ActiveObjName = null;
}
}
分类:
unity练功
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签