LayerMask 结构
LayerMask
结构是一个接口,其功能几乎就像将一个整数传递给相关函数一样。但是,它的最大好处是允许用户从检查器的下拉菜单中选择有问题的图层。
using UnityEngine;
class LayerMaskExample{
public LayerMask mask;
public Vector3 direction;
void Start()
{
if(Physics.Raycast(transform.position, direction, 35f, mask))
{
Debug.Log("Raycast hit");
}
{
}
它还具有多个静态函数,允许将图层名称转换为索引或索引到图层名称。
using UnityEngine;
class NameToLayerExample{
void Start()
{
int layerindex = LayerMask.NameToLayer("Obstacle");
{
}
为了使层检查容易定义以下扩展方法。
public static bool IsInLayerMask(this GameObject @object, LayerMask layerMask)
{
bool result = (1 << @object.layer & layerMask) == 0;
return result;
}
此方法允许你检查游戏对象是否在图层掩码中(在编辑器中选择)。