#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.