Unity-Technologies/UnityCsReference · error · ArgumentException
index must be between 0 and {transmissiveTextureCount - 1},
Error message
index must be between 0 and {transmissiveTextureCount - 1}, but was {index} What it means
Thrown by BakeInput.GetTransmissiveTextureData when the uint index is >= transmissiveTextureCount. Transmissive TextureData is its own collection, separate from transmissive properties and from albedo/emissive data; only transmissiveTextureCount is a valid bound here.
Source
Thrown at Editor/Mono/GI/LightBaker.bindings.cs:640
{
if (index >= emissiveTexturePropertiesCount)
throw new ArgumentException($"index must be between 0 and {emissiveTexturePropertiesCount - 1}, but was {index}");
return Internal_GetEmissiveTextureProperties(index);
}
extern void Internal_SetEmissiveTextureProperties(uint index, TextureProperties textureProperties);
public void SetEmissiveTextureProperties(uint index, TextureProperties textureProperties)
{
if (index >= emissiveTexturePropertiesCount)
throw new ArgumentException($"index must be between 0 and {emissiveTexturePropertiesCount - 1}, but was {index}");
Internal_SetEmissiveTextureProperties(index, textureProperties);
}
extern TextureData Internal_GetTransmissiveTextureData(uint index);
extern void Internal_SetTransmissiveTextureData(uint index, TextureData textureData);
public TextureData GetTransmissiveTextureData(uint index)
{
if (index >= transmissiveTextureCount)
throw new ArgumentException($"index must be between 0 and {transmissiveTextureCount - 1}, but was {index}");
return Internal_GetTransmissiveTextureData(index);
}
public void SetTransmissiveTextureData(uint index, TextureData textureData)
{
if (index >= emissiveTextureCount)
throw new ArgumentException($"index must be between 0 and {transmissiveTextureCount - 1}, but was {index}");
Internal_SetTransmissiveTextureData(index, textureData);
}
extern TextureProperties Internal_GetTransmissiveTextureProperties(uint index);
public TextureProperties GetTransmissiveTextureProperties(uint index)
{
if (index >= transmissiveTexturePropertiesCount)
throw new ArgumentException($"index must be between 0 and {transmissiveTexturePropertiesCount - 1}, but was {index}");
return Internal_GetTransmissiveTextureProperties(index);
}
extern void Internal_SetTransmissiveTextureProperties(uint index, TextureProperties textureProperties);
public void SetTransmissiveTextureProperties(uint index, TextureProperties textureProperties)
{View on GitHub (pinned to 225b0fbdb5)
Solutions
- Bound the loop with transmissiveTextureCount.
- Skip transmissive readback when transmissiveTextureCount == 0.
- Guard: if (index < bakeInput.transmissiveTextureCount) { ... }
Example fix
// before
for (uint i = 0; i < bakeInput.emissiveTextureCount; i++)
data.Add(bakeInput.GetTransmissiveTextureData(i));
// after
for (uint i = 0; i < bakeInput.transmissiveTextureCount; i++)
data.Add(bakeInput.GetTransmissiveTextureData(i)); Defensive patterns
Strategy: validation
Validate before calling
if (index < bakeInput.transmissiveTextureCount)
{
var d = bakeInput.GetTransmissiveTextureData(index);
} Prevention
- Bound transmissive data reads with transmissiveTextureCount.
- Skip readback when transmissiveTextureCount == 0.
- Do not reuse emissive/albedo counts for transmissive.
When it happens
Trigger: Iterating transmissive data with transmissiveTexturePropertiesCount, emissiveTextureCount, or instance/material counts; reading transmissive data on a BakeInput whose transmissive textures were never extracted.
Common situations: Scenes without transmissive materials (count 0, any read throws); readback that assumes one shared count across all four texture channels.
Related errors
- index must be between 0 and {transmissiveTexturePropertiesCo
- index must be between 0 and {albedoTexturePropertiesCount -
- index must be between 0 and {emissiveTexturePropertiesCount
- index must be between 0 and {GetCookieCount() - 1}, but was
- index must be between 0 and {lightmapCount - 1}, but was {in
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/a907acedbc5a77b0.
Report an issue: GitHub.