Version: 2021.3
言語: 日本語
レイヤーとレイヤーマスク
レイヤーマスクへのレイヤーの追加

レイヤーマスクの設定

このページでは、シリアライズされた layerMask プロパティを使用する API 呼び出しで使用できるように、レイヤーマスクを正しくを設定する方法を説明します。

シリアライズされた layerMask プロパティの使用

Unity エディターでレイヤーマスクを設定する最も簡単な方法は、Unity の LayerMask クラスを使用するプロパティを作成することです。プロパティが public である場合や SerializeField 属性を使用している場合は、Inspector にインターフェースが提供され、それを使用して、レイヤーマスクが表すレイヤーを選択することができます。

using UnityEngine;

public class LayerMaskExample : MonoBehaviour
{
    [SerializeField] private LayerMask layermask;
}

レイヤーからの変換

ランタイムにスクリプトでレイヤーをレイヤーマスクに変換したい場合は、 2 項左シフト演算子 を使用して、レイヤーごとに 1 を左シフトしてください。その結果、単一のレイヤーを表すレイヤーマスクができあがります。

using UnityEngine;

public class LayerExample : MonoBehaviour
{
    [SerializeField] private int layer = 10;
    private int layerAsLayerMask;

    private void Start()
    {
        layerAsLayerMask = (1 << layer);
    }
}

その他の参考資料

レイヤーとレイヤーマスク
レイヤーマスクへのレイヤーの追加