unity要求射线只与某层不发生碰撞,看清楚是不发生,layerMask参数是只与某层发生碰撞,反过来怎么弄??
答案:2 悬赏:40 手机版
解决时间 2021-04-03 15:59
- 提问者网友:謫仙
- 2021-04-02 17:58
unity要求射线只与某层不发生碰撞,看清楚是不发生,layerMask参数是只与某层发生碰撞,反过来怎么弄??
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-04-02 18:43
思维可以反转一下呀,这个时候可以做一个判断,当射线碰撞到了你不想碰撞的那一层的时候就不做哪些操作.
if(hit.gameObject.layer=="你不想要的那一层")
{
return;
//或者执行其他程序
}
if(hit.gameObject.layer=="你不想要的那一层")
{
return;
//或者执行其他程序
}
全部回答
- 1楼网友:罪歌
- 2021-04-02 20:10
~是取反符号
LayerMask的设置方法是,假设ground层为10,那么这里如果要只碰撞第10层Layer,那么Layermask mask=1<<10;这是位运算.按这种格式写就行了.
而如果是想与除了某层以外的所有层碰撞就写成
~(1<<10)就行了
LayerMask的设置方法是,假设ground层为10,那么这里如果要只碰撞第10层Layer,那么Layermask mask=1<<10;这是位运算.按这种格式写就行了.
而如果是想与除了某层以外的所有层碰撞就写成
~(1<<10)就行了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯