版本:Unity 6 (6000.0)
语言中文
  • C#

RenderingLayerMask.GetMask

提出更改建议

成功!

感谢您帮助我们改进 Unity 文档的质量。尽管不能接受所有提交,但我们确实会阅读用户提出的每一条建议更改,并酌情进行更新。

关闭

提交失败

由于某些原因,无法提交您提出的更改建议。请在几分钟后重试。感谢您花时间帮助我们改善 Unity 文档的质量。

关闭

取消

声明

public static uint GetMask(params string[] renderingLayerNames);

参数

renderingLayerNames 准备转换为渲染层蒙版的图层名称列表。

返回值

uintrenderingLayerNames 创建的渲染层蒙版。

描述

根据 标签和图层管理器 中定义的一组渲染层名称,返回针对所有名称的等效渲染层蒙版。

using UnityEngine;
using UnityEngine.Rendering;

public class Example : MonoBehaviour { void Start() { Debug.Log(RenderingLayerMask.GetMask("UserLayerA", "UserLayerB")); } }

注意:假设 UserLayerAUserLayerB 是第十和第十一层。它们将具有 10 和 11 的渲染层值。要获得它们的图层蒙版值,可以将它们的名称传递到 GetMask。参数可以是它们的名称列表,也可以是存储它们的名称的字符串数组。在这种情况下,返回值将是 2^10 + 2^11 = 3072。


声明

public static uint GetMask(ReadOnlySpan<string> renderingLayerNames);

参数

renderingLayerNames 准备转换为渲染层蒙版的图层名称 Span

返回值

uintrenderingLayerNames 创建的渲染层蒙版。

描述

根据 标签和图层管理器 中定义的一组渲染层名称,返回针对所有名称的等效渲染层蒙版。

using System;
using UnityEngine;
using UnityEngine.Rendering;

public class Example : MonoBehaviour { [SerializeField] string[] renderingLayerNames = { "UserLayerA", "UserLayerB" };

void Start() { Debug.Log(RenderingLayerMask.GetMask(new ReadOnlySpan<string>(renderingLayerNames))); } }