【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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值