@rustic rain I have this ancient code from my project, that I dont use anymore but this is how I set that up for sprite rendering
var spriteArray = m_SpriteQuery.ToComponentDataArray<SpriteRenderData>(Allocator.TempJob);
//var spriteEntityArray = m_SpriteQuery.ToEntityArray(Allocator.TempJob);
// We need slices
for (var i = 0; i < spriteArray.Length; i += SliceCount)
{
matrixList.Clear();
uvList.Clear();
m_MaterialPropertyBlock.Clear();
var sliceSize = math.min(spriteArray.Length - i, SliceCount);
for (var j = 0; j < sliceSize; j++)
{
var sprite = spriteArray[i + j];
matrixList.Add(sprite.Matrix);
uvList.Add(sprite.Uv);
}
m_MaterialPropertyBlock.SetVectorArray(m_mainTexUv, uvList);
Graphics.DrawMeshInstanced(
m_Mesh,
0,
m_Material,
matrixList,
m_MaterialPropertyBlock,
ShadowCastingMode.Off,
false
);
}
spriteArray.Dispose();
