Unity中的射线与多层控制方法

使用射线在多个层中点击物体时应该使用LayerMask.GetMask方法,类似下面这样:

if (Physics.Raycast(ray, out hit, 1000, LayerMask.GetMask(newstring[] { "CaiMeiJi", "ZhiJia", "Outline" })))
{
	follower = hit.transform;
	posOffset = hit.point - hit.transform.position;
}

注意,层的参数不要写成这样 1 << LayerMask.GetMask......

如果希望只检测除了某些层之外的其它层,写法类似这样:

~(1 << LayerMask.NameToLayer("Surveillance") | 1 << LayerMask.NameToLayer("UI"))

猜你喜欢

转载自blog.csdn.net/ttod/article/details/129360501