Как пройти через массив lightAr
и работать с:
- 1-й экземпляр источника света.
- N-й или последний экземпляр источника света.
- Последний экземпляр источника света.
- Любой уникальный источник (и).
Типичным примером являются 5 экземпляров и 2 уникальных источника света:
- Я хочу экспортировать значение первого экземпляра источника.
- Для 2-го и 4-го экземпляров источника экспортировать их значения.
- Для последнего источника экспортировать его значение.
- Затем экспортируйте значения для уникальных источников света. * Это не проблема.
Я хочу, чтобы переменные theName
и thePos
содержались в локальной области видимости внутри первого цикла for.
Isлучший способ сделать это с помощью цикла while или есть другой способ добиться этого?
Вот код, который у меня есть на данный момент ниже, с дальнейшими комментариями внутри.
(
clearListener()
local lightAr = for i in lights where not i.isHidden collect i
--Loop through the array lightAr
for i=1 to lightAr.count do
(
--Here I want to assign theName variable and the position outside the if else statement.
theName = lightAr[i].name as string
thePos = lightAr[i].pos as string
--For the lights that are instances.
if (InstanceMgr.GetInstances lightAr[i] <s > 1) then
(
--This will do stuff to the first found instance.
for m=1 to 1 where m == 1 do print ("1st instance:\t\t\t" + lts[m].name as string + " - " + theName + thePos)
--This will do stuff to the Nth found instance.
for m=1 to lts.count where m > 1 and m < lts.count do print ("Nth instance:\t\t\t" + lts[m].name as string + " - " + theName + thePos)
--This will do stuff to the last found instance.
for m=1 to lts.count where m == lts.count do print ("Last instance:\t\t\t" + lts[m].name as string + " - " + theName + thePos)
--If this line below is unblocked then this will only repeat for the first group of light instances.
--How do I get around this problem.
--exit
) else (
--And this will do stuff of the unique lights in the lightAr array.
--This is fine.
print ("Unique light:\t\t\t" + lightAr[i].name as string + " - " + theName + thePos)
)
)
free lightAr ; ok
free lts ; ok
)