关于Layer的一些补充

需求:Inspector面板供编辑的Layer选择公开字段,自由选择射线可交互层。并可用判断当前物体层是否在可交互层列表中。

实现:

[Header("射线可交互层")]
public LayerMask RayLayers;

public void Awake()
{
    RayLayers = Physics2D.AllLayers;//开启所有层
    RayLayers &= ~(int)(1 << LayerMask.NameToLayer("Ignore Raycast"));//反选,关闭当前层

    Debug.Log((RayLayers.value & (int)Mathf.Pow(2, gameObject.layer)) == (int)Mathf.Pow(2, gameObject.layer)
                ? "当前物体在层中"
                : "当前物体不在层中");
}

猜你喜欢

转载自blog.csdn.net/u014534474/article/details/84298444
今日推荐