1. 程式人生 > >關於Layer的一些補充

關於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)
                ? "當前物體在層中"
                : "當前物體不在層中");
}