DOTS 인스터스 프로퍼티에 액세스하기 위해 셰이더는 Unity에서 제공하는 액세스 매크로 중 하나를 사용할 수 있습니다. 액세스 매크로는 unity_DOTSInstanceData의 인스턴스 데이터가 다음 레이아웃을 사용한다고 가정합니다.
unity_DOTSInstanceData 버퍼 내 배치에 있는 첫 번째 인스턴스의 바이트 주소를 포함합니다.0인 경우 모든 인스턴스는 인스턴스 인덱스 0 값을 사용합니다. 즉, 각 인스턴스는 메타데이터 값의 바이트 주소에서 직접 로드됩니다. 이 경우 버퍼는 인스턴스당 하나의 값이 아닌 단일 값만 저장해야 합니다.1인 경우 주소에는 AddressOfInstance0 + sizeof(PropertyType) * instanceID를 사용하여 인스턴스 인덱스 instanceID의 값을 찾을 수 있는 배열이 포함되어야 합니다. 이 경우 렌더링된 모든 인스턴스 인덱스의 버퍼에 유효한 데이터가 있는지 확인해야 합니다. 그렇지 않으면 범위를 벗어난 액세스와 정의되지 않은 동작이 발생할 수 있습니다.또한 텍스처와 같이 위의 레이아웃을 사용하지 않는 커스텀 데이터 소스를 사용하려는 경우 유용한 메타데이터 값을 직접 설정할 수도 있습니다.
이러한 매크로를 사용하는 방법에 대한 예시는 매크로 액세스 예시를 참조하십시오.