Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
关于射线检测Layermask设置的问题
三鲜卷发起了问答2018-01-15
2
回复
1998
浏览

秘密行动里 ,我不想让相机的射线检测检测到激光门的collider,所以想用layermask来指定检测某些层的碰撞,但是设置了没有什么作用,设置如下:

如果代码里不加layermask参数,射线检测是正常的,加了就没反应了,代码是这样写的:

public LayerMask layer;

if (Physics.Linecast(temp, player.position+Vector3.up, out raycastHit,layer.value))//加了这个就检测不到了

在unity里选定了这个public layermask layer为ui

 

整个env场景包括子物体我也把layer设置成了UI,然后射线检测就什么都检测不到了,靠近墙相机也不自动改变位置。

请问这样设置layermask的方法和代码对不对,如果想实现只检测某些层级collider该怎么正常设置

 

所有回复
  • siki 2018-01-15

    不用使用layer.value,直接使用 layer就可以了

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 三鲜卷 2018-01-16

    我找到为什么摄像机视角为什么不变的原因了

    因为我射线检测只加入了UI层,忘记把主角那一层放进去了crying

    射线检测就默认一直检测不到主角,遍历5个点位置的代码就会一直continue,找不到看到主角的点,所以镜头位置就不会改变= =

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!