Unity は以下のアクセスマクロを提供しています。
| アクセスマクロ | 説明 |
|---|---|
UNITY_ACCESS_DOTS_INSTANCED_PROP(PropertyType, PropertyName) |
上記のレイアウトを使用して unity_DOTSInstanceData からロードされた値を返します。Unity が提供するシェーダーは、フォールバックするデフォルト値を持たない DOTS Instanced ビルトインプロパティにこのバージョンを使用します。 |
UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(PropertyType, PropertyName) |
UNITY_ACCESS_DOTS_INSTANCED_PROP と同じ値を返しますが、メタデータの最上位ビットが 0 の場合はデフォルト値を返します。デフォルト値は、DOTS Instanced プロパティと同じ名前を持つ通常のマテリアルプロパティの値です。Unity 提供のシェーダーが、DOTS Instanced プロパティは通常のマテリアルプロパティと同じ名前を持つという規則を採用しているのはこのためです。デフォルト値を使用する場合、アクセスマクロは unity_DOTSInstanceData に一切アクセスしません。Unity 提供のシェーダーはこのアクセスマクロを DOTS Instanced マテリアルプロパティに使用するため、ロードはマテリアルに設定された値にフォールバックします。 |
UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_CUSTOM_DEFAULT(PropertyType, PropertyName, DefaultValue) |
UNITY_ACCESS_DOTS_INSTANCED_PROP と同じ値を返します。ただし、メタデータの最上位ビットが 0 の場合は、代わりに DefaultValue を返し、unity_DOTSInstanceData にはアクセスしません。 |
UNITY_DOTS_INSTANCED_METADATA_NAME(PropertyType, PropertyName) |
どこにもアクセスせずにメタデータの値を直接返します。これは、カスタムのインスタンスデータロードスキームに役立ちます。 |