Version: 6000.3
语言: 中文
URP中的DOTS实例化着色器示例
访问 URP 中常量数据的 DOTS 实例化着色器示例

访问 URP 中每个实例数据的 DOTS 实例化着色器示例

在此示例中:

  • 的元数据值Color0x80001000.
  • 实例索引为5.
  • 例如,数据 0 从地址 0x1000 开始。
  • 例如,数据 5 位于地址 0x1000 + 5 * sizeof(float4) = 0x1050

由于已设置最高有效位,因此访问器宏不会加载默认值。这意味着c0,c1c2将都有相同的值,从unity_DOTSInstanceData地址0x1050.

void ExamplePerInstance()
{
    // rawMetadataValue will contain 0x80001000
    uint rawMetadataValue = UNITY_DOTS_INSTANCED_METADATA_NAME(float4, Color);

    float4 c0 = UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, Color);
    float4 c1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, Color);
    float4 c2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_CUSTOM_DEFAULT(float4, Color, float4(1, 2, 3, 4));
}
URP中的DOTS实例化着色器示例
访问 URP 中常量数据的 DOTS 实例化着色器示例