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

  1. Bound iteration by transmissiveTexturePropertiesCount.
  2. Confirm InputExtraction populated transmissive properties before reading them.
  3. 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

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


AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13). Data as JSON: /api/errors/fa865c5cec731af9. Report an issue: GitHub.