版本:Unity 6 (6000.0)
语言:英语
层级和 layerMask
设置 layerMask

LayerMask 简介

每个 GameObjectUnity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。GameObject 的功能由附加在其上的组件定义。 更多信息
参见 术语表
存在于单个层级上,但允许您设置 API 影响哪些层级的 Unity API 并不直接使用层级。相反,它们使用 layerMask。

一个 层级Unity 中的层级可用于选择性地将一组 GameObject 包含在或排除在某些流程或计算之外。这包括摄像机渲染、灯光、物理碰撞或您自己代码中的自定义计算。 更多信息
参见 术语表
是一个标准整数,但 layerMask 是一个格式化为位掩码的整数,其中每个 1 表示要包含的层级,每个 0 表示要排除的层级。这意味着您可以将层级传递给期望 layerMask 的 API,并且脚本仍将编译,因为层级和 layerMask 使用相同的底层类型。但是,API 调用不会产生您期望的行为。

例如,如果您想对层级 9 上的 GameObject 执行 RayCast,如果您将 9 作为 layerMask 传递给 Physics.Raycast 调用,Unity 实际上会对层级 30 上的 GameObject 执行射线投射。这是因为 9 的二进制表示形式为 00001001,如果您将其解释为掩码,则 1 位于层级 30 的位置。

层级和 layerMask
设置 layerMask