【Unity】 Physics.Raycast方法添加LazyerMask层级参数无效Bug处理方法
项目场景:
第一人称射击判定射线无法击中敌人
问题描述
使用Physics.Raycast
射线方法传入层级参数LazyerMask
导致射线失效解决方案
Physics.Raycast(transform.position,transform.forward, out hit, speed,LazyerMask.NameToLazyer("Enemy"));
解决方案:
- 方案一:设置公开LazyMask类型参数,在配置界面设置层级,传给
Physics.Raycast
方法
public LazyerMask lazyMask; Physics.Raycast(transform.position, transform.forward, out hit, speed,lazyerMask));
- 方案二:使用官方提供传参方法()
// 位移层 (8) 的索引以获得位掩码 int layerMask = 1 << 8; // 这将仅对第 8 层中的碰撞器投射光线。 // 但相反,我们希望与第 8 层以外的所有内容发生碰撞。~ 运算符执行此操作,它反转位掩码。 layerMask = ~layerMask; Physics.Raycast(transform.position,transform.forward, out hit, speed,lazyerMask))
本文来自博客园,作者:星空探险家,转载请注明原文链接:https://www.cnblogs.com/PuppetLazy/p/17840912.html
标签:
Unity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了