Невозможно добавить элементы в таблицу Roblox

#arrays #null #roblox

#массивы #null #roblox

Вопрос:

У меня возникли трудности с устранением неполадок в некотором коде.

У меня есть цикл for, и в нем я клонирую часть (называемую EnemySiteHub).

Я ожидаю, что смогу сохранить каждую клонированную часть в таблицу (называемую EnemySiteTable).

К сожалению, несмотря на то, что цикл выполняется успешно, и я действительно вижу клонированные EnemySiteHubs во время запуска игры.. Размер таблицы остается равным 0.Попытка получить доступ к таблице в коде выдает нулевую ошибку.

Фрагмент кода:

   local ENEMYSITE_COUNT = 5
    local EnemySiteTable = {} -- [[ Store the table of enemy site objects ]]
    
        -- Loops until there are the amount of enemy site hubs set in ENEMYSITE_COUNT
            for i = 1, ENEMYSITE_COUNT do
                
                --Makes a copy of EnemySiteHub
                local enemySite = ServerStorage.EnemySites.EnemySiteHub:Clone()
                enemySite.Parent = workspace.EnemySites
                
                EnemySiteTable[i] = enemySite
  

Эта строка кода вызывает следующую ошибку.

 local enemySiteTableSize = #enemySiteTable
  

18:12:37.984 — ServerScriptService.MoveEnemyToSite:15: попытка получить длину нулевого значения

Любая помощь будет оценена.

Ответ №1:

#array используется для получения длины массивов. Вам придется использовать какой-то table.function() или использовать for i,v in pairs(EnemySiteTable) цикл.

Вот еще немного информации: https://developer.roblox.com/en-us/articles/Table

Комментарии:

1. Спасибо за совет. Вы бы не рекомендовали использовать EnemySiteTable[i] = enemySite ? Ненадежно ли это использовать?

Ответ №2:

Спасибо @pyknight202

Проблема возникла где-то еще в моем коде.

EnemySiteTable находится в скрипте модуля.

Приведенный ниже код является правильным кодом для предоставления доступа к EnemySiteTable

 --Have the table of enemies accessible 
EnemySiteManager.EnemySiteTable = EnemySiteTable
  

У меня была ошибка (опечатка) в этой строке кода.
Эффект этой ошибки продолжал возвращать нулевую таблицу, давая размер таблицы 0.