服务

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

重用代码 中,您可能已经注意到频繁使用 game:GetService() 方法。Roblox 服务使您能够访问引擎的内置功能,比如销售游戏内物品、启用聊天、播放声音、动画对象和管理实例。

事实上,服务是 Roblox 开发中最基本、最常见模式 的第一步:

  1. 获取服务。
  2. 引用模块脚本。
  3. 添加本地函数。
  4. 添加触发这些函数的 事件

例如,您可能希望在玩家退出游戏时保存他们在世界中的位置:


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- 调用模块脚本中的可重用函数的本地函数。
local function saveProgress(character)
-- 获取玩家角色的位置。
local position = character:FindFirstChild("HumanoidRootPart").Position
-- 使用模块脚本中的 saveData 函数,该函数写入到
-- DataStoreService。
SaveManager.saveData(character, position)
end
-- 另一个本地函数,当角色从游戏中移除时调用 saveProgress()
--(在此情况下,当玩家离开时)。
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- 当玩家首次连接到游戏时调用 onPlayerAdded。
Players.PlayerAdded:Connect(onPlayerAdded)

一些关键细节包括:

  • 由于您每个脚本只应检索一次服务,因此惯例是将变量命名为与服务相同的名称。这一惯例同样适用于模块脚本。
  • 您通过全局变量 game 检索服务,该变量引用数据模型的根。
  • Roblox 不保证加载顺序(并且 实例流 进一步加复杂了在任何给定时间是否加载),因此使用 Instance:WaitForChild() 是一项重要的安全措施。

在识别可以帮助您为游戏添加所需功能的服务时,Roblox 开发的一个重要部分是识别众多服务中的哪些可以帮助您。在上面的例子中,您使用 云服务 来存储数据,而不是使用标准 I/O 库将数据写入磁盘。

容器服务

容器服务可以包含和影响其他对象。这些容器服务存在于数据模型的根节点,并在 Studio 的 Explorer 窗口中可见。这些容器服务共同形成数据模型的结构层次,使 Roblox 引擎能够正确解释和渲染您的地方。以下表格包含一些常见的容器服务。

服务描述
Workspace包含所有在 3D 世界中渲染的对象,如零件和地形。
Lighting包含设置通用照明效果的对象,如 AtmosphereSky
ReplicatedStorageReplicatedFirst包含服务器与客户端之间复制的内容和逻辑。

要进一步检查数据模型,您可以使用以下方法:

有关容器服务的更多信息,请参见 数据模型 文档。

脚本服务

脚本服务提供在 Roblox 引擎中在脚本内部调用的标准功能。以下表格包含一些常见的脚本服务。

服务描述
TweenService用于将其他实例的数值属性从一个起始值插值到一个结束值,具有缓动方向和样式、重复和延迟的选项。
MarketplaceService负责游戏内交易的服务,如提示玩家购买开发者产品、订阅、通行证、Roblox Premium 等。
RunService包含逐帧时间管理的方法和事件,以及检查游戏运行上下文(服务器、客户端、Studio 模式)的方法。对每个运行时帧运行任何过程或更新非常有用。
SoundService控制游戏中音频播放的各种全局方面,如多普勒缩放和体积音频。还可以包含声音组,以一次控制多个音频信号的音量和动态效果属性。
CollectionService管理带标签的实例组(集合),这些标签从服务器复制到客户端,让您更容易分配和处理相关实例的组。

云服务

Roblox 还有特殊的云服务,用于处理在 Roblox 云中发生的任务和过程。以下表格包含一些常见的云服务。

服务描述
DataStoreService用于跨会话存储持久化数据。
MemoryStoreService用于存储频繁且瞬态的数据,这些数据迅速变化。
MessagingService用于在实时会话期间多个服务器之间进行通信。

云服务也具有相应的 Web API;可以从外部脚本或工具访问。有关更多信息,请参见 开放云

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。