Version: Unity 6.0 (6000.0)
言語 : 日本語
URP のインスタンスごとのデータにアクセスする DOTS インスタンスシェーダーの例
URP の DOTS インスタンシングシェーダーでの UNITY_DOTS_INSTANCED_PROP マクロの使用例

URP の定数データにアクセスする DOTS インスタンシングシェーダーの例

以下の例の説明:

  • Color のメタデータ値は 0x00001000 です。
  • インスタンスインデックスは 5 です。
  • インスタンス 0 のデータはアドレス 0x1000 から開始します。
  • 最上位ビットは設定されていないので、インスタンス 5 のデータはインスタンス 0 と同じアドレスにあります。

最上位ビットが設定されていないため、デフォルトにフォールバックするアクセサーマクロは unity_DOTSInstanceData にアクセスしません。つまり、以下のようになります。

  • c0 にはアドレス 0x1000unity_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));
}
URP のインスタンスごとのデータにアクセスする DOTS インスタンスシェーダーの例
URP の DOTS インスタンシングシェーダーでの UNITY_DOTS_INSTANCED_PROP マクロの使用例