Unity-Technologies/UnityCsReference · error · ArgumentException
index must be between 0 and {emissiveTexturePropertiesCount
Error message
index must be between 0 and {emissiveTexturePropertiesCount - 1}, but was {index} What it means
Thrown by BakeInput.GetEmissiveTextureProperties when the uint index is >= emissiveTexturePropertiesCount. Emissive TextureProperties are a separate collection from emissive TextureData (emissiveTextureCount), so the two counts can differ and must not be used interchangeably.
Source
Thrown at Editor/Mono/GI/LightBaker.bindings.cs:624
extern TextureData Internal_GetEmissiveTextureData(uint index);
extern void Internal_SetEmissiveTextureData(uint index, TextureData textureData);
public TextureData GetEmissiveTextureData(uint index)
{
if (index >= emissiveTextureCount)
throw new ArgumentException($"index must be between 0 and {emissiveTextureCount - 1}, but was {index}");
return Internal_GetEmissiveTextureData(index);
}
public void SetEmissiveTextureData(uint index, TextureData textureData)
{
if (index >= emissiveTextureCount)
throw new ArgumentException($"index must be between 0 and {emissiveTextureCount - 1}, but was {index}");
Internal_SetEmissiveTextureData(index, textureData);
}
extern TextureProperties Internal_GetEmissiveTextureProperties(uint index);
public TextureProperties GetEmissiveTextureProperties(uint index)
{
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);
}View on GitHub (pinned to 225b0fbdb5)
Solutions
- Bound iteration by emissiveTexturePropertiesCount.
- Confirm InputExtraction populated emissive properties before reading them.
- Guard: if (index < bakeInput.emissiveTexturePropertiesCount) { ... }
Example fix
// before
for (uint i = 0; i < bakeInput.emissiveTextureCount; i++)
p.Add(bakeInput.GetEmissiveTextureProperties(i));
// after
for (uint i = 0; i < bakeInput.emissiveTexturePropertiesCount; i++)
p.Add(bakeInput.GetEmissiveTextureProperties(i)); Defensive patterns
Strategy: validation
Validate before calling
if (index < bakeInput.emissiveTexturePropertiesCount)
{
var p = bakeInput.GetEmissiveTextureProperties(index);
} Prevention
- Use emissiveTexturePropertiesCount for properties, emissiveTextureCount for data.
- Confirm properties were populated before reading.
- Keep data and properties aligned if 1:1 is assumed.
When it happens
Trigger: Reading emissive properties in a loop bounded by emissiveTextureCount or another channel's count; reading properties that InputExtraction never populated.
Common situations: Readback assuming data and properties are 1:1 per channel; scenes where emissive data exists but properties extraction was skipped.
Related errors
- index must be between 0 and {albedoTexturePropertiesCount -
- index must be between 0 and {transmissiveTexturePropertiesCo
- 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/23ce4edf834ccc4a.
Report an issue: GitHub.