Я пытаюсь испечь освещение для своих сборных конструкций и использую это решение в попытке сделать это. Однако, как следует из названия, это не сработало. Я обнаружил, что проблема заключается в if
здесь
bool existsAlready = false;
int[] lightmapArrayOffsetIndex;
lightmapArrayOffsetIndex = new int[lightmaps.Length];
var settingslightmaps = LightmapSettings.lightmaps;
for (int i = 0; i < lightmaps.Length; i++)
{
for (int j = 0; j < settingslightmaps.Length; j++)
{
if (lightmaps[i] == settingslightmaps[j].lightmapColor)
{
lightmapArrayOffsetIndex[i] = j;
existsAlready = true;
}
}
}
, где lightmaps[]
- это Texture2D[]
Моя карта освещения для упомянутого сборного дома является третьей картой освещения для сцены. Когда цикл for достигает третьего элемента в settingslightmaps[]
, оператор if
возвращает false
. Я попытался добавить точки останова для отладки моего кода, и - это точка в цикле, когда lightmaps[i]
и settingslightmaps[j]
имеют одинаковые имена, но оператор if
все еще возвращает false
.
Почему он возвращает false, даже когда отладчик говорит мне, что они указывают на одну и ту же карту освещения и как мне это исправить?