Unity-Technologies/UnityCsReference · error · ArgumentException
index must be between 0 and {transmissiveTexturePropertiesCo
Error message
index must be between 0 and {transmissiveTexturePropertiesCount - 1}, but was {index} What it means
Thrown by BakeInput.GetTransmissiveTextureProperties when the uint index is >= transmissiveTexturePropertiesCount. Transmissive TextureProperties are distinct from transmissive TextureData (transmissiveTextureCount) and from all other channels, so the bound must come from transmissiveTexturePropertiesCount.
Source
Thrown at Editor/Mono/GI/LightBaker.bindings.cs:653
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)
{
if (index >= transmissiveTexturePropertiesCount)
throw new ArgumentException($"index must be between 0 and {transmissiveTexturePropertiesCount - 1}, but was {index}");
Internal_SetTransmissiveTextureProperties(index, textureProperties);
}
public extern uint GetCookieCount();
extern CookieData Internal_GetCookieData(uint index);
extern void Internal_SetCookieData(uint index, CookieData cookieData);
public CookieData GetCookieData(uint index)
{
if (index >= GetCookieCount())
throw new ArgumentException($"index must be between 0 and {GetCookieCount() - 1}, but was {index}");
return Internal_GetCookieData(index);View on GitHub (pinned to 225b0fbdb5)
Solutions
- Bound iteration by transmissiveTexturePropertiesCount.
- Confirm InputExtraction populated transmissive properties before reading them.
- Guard: if (index < bakeInput.transmissiveTexturePropertiesCount) { ... }
Example fix
// before
for (uint i = 0; i < bakeInput.transmissiveTextureCount; i++)
p.Add(bakeInput.GetTransmissiveTextureProperties(i));
// after
for (uint i = 0; i < bakeInput.transmissiveTexturePropertiesCount; i++)
p.Add(bakeInput.GetTransmissiveTextureProperties(i)); Defensive patterns
Strategy: validation
Validate before calling
if (index < bakeInput.transmissiveTexturePropertiesCount)
{
var p = bakeInput.GetTransmissiveTextureProperties(index);
} Prevention
- Use transmissiveTexturePropertiesCount for properties, transmissiveTextureCount for data.
- Confirm properties were populated before reading.
- Keep data and properties aligned if 1:1 is assumed.
When it happens
Trigger: Reading transmissive properties in a loop bounded by transmissiveTextureCount or another channel's count; reading properties that InputExtraction never populated.
Common situations: Readback assuming per-channel data and properties are 1:1; scenes where transmissive data exists but properties extraction was skipped.
Related errors
- index must be between 0 and {albedoTexturePropertiesCount -
- index must be between 0 and {emissiveTexturePropertiesCount
- index must be between 0 and {transmissiveTextureCount - 1},
- 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/fa865c5cec731af9.
Report an issue: GitHub.