以下の例の説明:
Color のメタデータ値は 0x00001000 です。5 です。最上位ビットが設定されていないため、デフォルトにフォールバックするアクセサーマクロは unity_DOTSInstanceData にアクセスしません。つまり、以下のようになります。
c0 にはアドレス 0x1000 の unity_DOTSInstanceData の値が含まれます。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));
}