在此示例中
Color
的元数据值为 0x80001000
。5
。因为最高有效位已设置,所以访问器宏不会加载默认值。这意味着 c0
、c1
和 c2
将具有相同的值,这些值从 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));
}