Version: 6000.3
语言: 中文
访问 URP 中每个实例数据的 DOTS 实例化着色器示例
在URP的DOTS实例化着色器中使用UNITY_DOTS_INSTANCED_PROP宏的示例

访问 URP 中常量数据的 DOTS 实例化着色器示例

在此示例中:

  • 的元数据值Color0x00001000.
  • 实例索引为5.
  • 例如,数据 0 从地址 0x1000 开始。
  • 未设置最高有效位,因此实例 5 的数据与实例 0 位于同一地址。

由于未设置最高有效位,因此回退到默认值的访问器宏不会访问unity_DOTSInstanceData.这意味着:

  • c0将包含来自unity_DOTSInstanceData地址0x1000.
  • c1将包含常规材质属性 Color 的值,如果 Color 属性不存在,则会导致编译错误。
  • c2将包含(1, 2, 3, 4)因为它是作为显式默认值传递的。
void ExampleConstant()
{
    // rawMetadataValue will contain 0x00001000
    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实例化着色器中使用UNITY_DOTS_INSTANCED_PROP宏的示例