本页将介绍如何正确设置 layerMask,以便在使用序列化 layerMask 属性的 API 调用中使用它。
在 Unity 编辑器中设置 layermask 的最简单方法是创建一个使用 Unity LayerMask 类的属性。如果该属性为 public 或使用 SerializeField 属性,那么 Unity 会通过检视面板提供一个界面,供您选择 layermask 所代表的层。
using UnityEngine;
public class LayerMaskExample : MonoBehaviour
{
[SerializeField] private LayerMask layermask;
}
如果要在运行时通过脚本将层转换为 layermask,请使用二进制左移运算符按层对 1 进行左移。得到的结果是一个表示单一层的 layermask。
using UnityEngine;
public class LayerExample : MonoBehaviour
{
[SerializeField] private int layer = 10;
private int layerAsLayerMask;
private void Start()
{
layerAsLayerMask = (1 << layer);
}
}