public static void DrawMeshInstanced(Mesh mesh, int submeshIndex, Material material, Matrix4x4[] matrices, [UnityEngine.Internal.DefaultValue("matrices.Length")] int count, [UnityEngine.Internal.DefaultValue("null")] MaterialPropertyBlock properties, [UnityEngine.Internal.DefaultValue("ShadowCastingMode.On")] ShadowCastingMode castShadows, [UnityEngine.Internal.DefaultValue("true")] bool receiveShadows, [UnityEngine.Internal.DefaultValue("0")] int layer, [UnityEngine.Internal.DefaultValue("null")] Camera camera)
{
if (!SystemInfo.supportsInstancing)
{
throw new InvalidOperationException("Instancing is not supported.");
}
if (mesh == null)
{
throw new ArgumentNullException("mesh");
}
if (submeshIndex < 0 || submeshIndex >= mesh.subMeshCount)
{
throw new ArgumentOutOfRangeException("submeshIndex", "submeshIndex out of range.");
}
if (material == null)
{
throw new ArgumentNullException("material");
}
if (matrices == null)
{
throw new ArgumentNullException("matrices");
}
if (count < 0 || count > Mathf.Min(Graphics.kMaxDrawMeshInstanceCount, matrices.Length))
{
throw new ArgumentOutOfRangeException("count", string.Format("Count must be in the range of 0 to {0}.", Mathf.Min(Graphics.kMaxDrawMeshInstanceCount, matrices.Length)));
}
if (count > 0)
{
Graphics.Internal_DrawMeshInstanced(mesh, submeshIndex, material, matrices, count, properties, castShadows, receiveShadows, layer, camera);
}
}