脚本

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

脚本是一个简单的文本文件,可让您在体验上添加自定义、动态行为。您可以使用脚本来触发游戏事件、回应玩家输入、保存玩家数据、创建排行榜、生成敌人、控制 NPC 行为和 much, much more。

Luau

Roblox 脚本使用 Luau 编程语言,其语言源自 Lua 5.1

  • 与 Lua 5.1 相比,Luau 添加了性能提升和许多有用的功能,包括可选的输入系统、字符串解插值和通用循环对象。
  • 所有有效的 Lua 5.1 代码都是 Luau 代验证码,但相反,不是。

大多数 Lua 书籍和在线资源对于 Lua 仍然适用于 Luau。有关 Lua 语言的详细概述,请参阅 Lua 文档中的兼容性。对于语言语法,请参阅 Lua 参考

Luau 基础

Luau是按渐变键打字,因此在创建变量时无需指定类型。您可以使用 type() 来检查对象输入:


logMessage = "User has more than 10 items!"
print(logMessage) --> 用户拥有超过 10 个物品!
print(type(logMessage)) --> string

Luau有全球和本地范围,但通常来说,变量和函数的声明都会在本地使用local键:


local logMessage = "User has more than 10 items!"
local function printMessage()
print(logMessage)
end
printMessage() --> User has more than 10 items!

Lua 使用 nil 来表示不存在或无效,这在条件性语句中评估为 false


local messageToUser
print(messageToUser) --> 零
print(type(message)) --> 零
if messageToUser then
-- 语句评估为 false
end

您可能已经注意到,-- 启动了一个一行评论。--[[]] 创建了一个方块评论:


-- [[
Shuts off the cosmic moon ray immediately.
Should only be called within 15 minutes of midnight Mountain Standard
Time to avoid damage to the cosmic moon ray.
]]
local function stopCosmicMoonRay()
-- 稍后添加,它可能会证明重要
end

桌子 是对阵列和字典的通用术语。阵列是基于单而不是零的,因此第一个项目是 [1] 。 您用一个单个的括号声明阵列和字典:


local myArray = {"chips", "sparkling water", "salsa"}
local myDictionary = {
snack = "chips",
drink = "sparkling water",
dip = "salsa"
}
print(myArray[1]) --> 芯片
print(myDictionary.dip) --> salsa

您可以使用 for 循环使用 ipairs() 函数对阵列和 pairs() 对字典,但 Luau 也允许您为了清晰语法略过这些函数:


for index, value in ipairs(myArray) do -- 标准 Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- 标准 Lua
print(key, value)
end
for key, value in myDictionary do -- Luau 通用循环
print(key, value)
end

您的第一个脚本

  1. 在 Roblox Studio 中,将鼠标悬停在 服务器脚本服务Explorer 窗口上,然后单击 +

  2. 选择 脚本 以添加新脚本。

  3. 右击脚本,并将其重命名为 HelloScript

  4. 双击脚本以在 脚本编辑器 中打开。

  5. 将以下代码添加到文件:


    local helloArray = {"h", "e", "l", "l", "o"}
    local worldArray = {"w", "o", "r", "l", "d"}
    for index, value in helloArray do
    print(value)
    end
    print(table.concat(worldArray))
  6. 确保 输出 窗口打开。

  7. 单击 播放 以运行您的体验。

  8. 注意输出:


    h
    e
    l (x2)
    o
    world

感到舒适

适应新的开发环境的大部分是配置它来满足您的需求,并了解您可用的工具:

  • Studio 设置脚本编辑器 部分中,您可以调整字体、颜色、间隔、自动完成、括号和工具提示的品质。您也可以在2> Studio2>部分中启用黑暗模式。
  • 持有 CtrlCommand 并单击函数或变量会将您带到您的代码库(或在线文档)中的其他声明。使用 查找并查找所有 可以帮助您导航更大的项目。
  • 输出窗口是最基本的工具来理解您的脚本的行为。使用 菜单启用 显示上下文 和1>显示源1>。
  • 脚本分析 窗口显示错误和警告的概要,但您可能会发现它的工具限制;脚本编辑器已经在您输入入时高亮这些问题。
  • 日志功能极其简单,没有像 DEBUGFATAL 这样的概念。 使用 print() 和 1> Global.RobloxGlobals.warn()1>。

有关配置 Studio 脚本的更多信息,请参阅脚本编辑器。有关使用您最喜欢的文本编辑器和版本控制系统的信息,请参阅外部工具。

您的第二个脚本

  1. 在 Roblox Studio 中,将脚本添加到 ReplicatedStorageExplorer 窗口中,然后将其重命名为 OhNo

  2. 将以下代码添加到文件:


    print("Hello script types and locations!")
  3. 单击 播放 以运行您的体验。

  4. 注意输出与您运行您的第一个脚本时无任何不同。

要了解为什么脚本不运奔跑,请参阅脚本类型和位置