使用射线在多个层中点击物体时应该使用LayerMask.GetMask方法,类似下面这样:
if (Physics.Raycast(ray, out hit, 1000, LayerMask.GetMask(newstring[] { "CaiMeiJi", "ZhiJia", "Outline" })))
{
follower = hit.transform;
posOffset = hit.point - hit.transform.position;
}
![](https://i-blog.csdnimg.cn/blog_migrate/9c6fbb037f55a35076c1a39323d30dbe.png)
注意,层的参数不要写成这样 1 << LayerMask.GetMask......
如果希望只检测除了某些层之外的其它层,写法类似这样:
~(1 << LayerMask.NameToLayer("Surveillance") | 1 << LayerMask.NameToLayer("UI"))
![](https://i-blog.csdnimg.cn/blog_migrate/d80a40ccb7c270792565046f681d1edf.png)