无法将项目添加到 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 表的主要内容,如果未能解决你的问题,请参考以下文章

带有发布请求的 Roblox Python 购买项目

Lua 刷新脚本 (ROBLOX)

在 LocalScript (Roblox LUA) 中创建抽象对象

roblox 中的单独位置数据存储如何工作?

Roblox HttpPost

为啥取消装备此工具会将玩家重新定位到 Roblox 中的地图中心?