无法将项目添加到 Roblox 表
Posted
技术标签:
【中文标题】无法将项目添加到 Roblox 表【英文标题】:Unable to add items to Roblox Table 【发布时间】:2021-01-26 07:10:25 【问题描述】:我在对某些代码进行故障排除时遇到了困难。
我有一个 for 循环,并在其中克隆了一个部分(称为 EnemySiteHub)。
我希望我可以将每个克隆的部分存储到一个表(称为 EnemySiteTable)中。
不幸的是,即使循环成功运行并且我在游戏运行期间实际上看到了克隆的 EnemySiteHubs。桌子的大小仍然为 0。 尝试在代码中访问表会出现 nil 错误。
代码片段:
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:尝试获取 nil 值的长度
我们将不胜感激。
【问题讨论】:
【参考方案1】:#array
用于检索数组的长度。您将不得不使用某种table.function()
或使用for i,v in pairs(EnemySiteTable)
循环。
这里有更多信息:https://developer.roblox.com/en-us/articles/Table
【讨论】:
感谢您的建议。你会不鼓励使用 EnemySiteTable[i] =enemySite 吗?用这个不靠谱吗?【参考方案2】:谢谢@pyknight202
问题源于我的代码中的其他地方。
EnemySiteTable 在模块脚本中。
下面的代码是访问 EnemySiteTable 的正确代码
--Have the table of enemies accessible
EnemySiteManager.EnemySiteTable = EnemySiteTable
我在那行代码中有一个错误(错字)。 该错误的影响一直返回一个 nil 表,表大小为 0。
【讨论】:
以上是关于无法将项目添加到 Roblox 表的主要内容,如果未能解决你的问题,请参考以下文章