服务

*此内容使用人工智能(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 函数,该函数将写入
-- 数据存储服务。
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|包含用于设置通用照明效果的对象,例如AtmosphereSkyReplicatedStorageReplicatedFirst | 包含服务器和客户端之间复制的内容和逻辑。

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

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

脚本服务

脚本服务在 Roblox 引擎中提供标准功能,您可以在脚本中调用。下表包括一些常见的脚本服务。

服务 | 描述 :--- | :--- TweenService | 用于从开始到结束值中插入其他实例的数字属性,配有简化方向和风格、重复和延迟选项。 MarketplaceService | 负责体验交易的服务,例如提示玩家购买开发者产品、订阅或游戏通行证,升级到 Roblox Premium 等 ContextActionService | 允许您将用户输入,例如按键输按住、屏幕点轻点或控制器按钮输入绑定到上下文行动,例如用户进入和离开汽车时修改控件。 RunService | 包含用于框架级别时间管理的方法和事件以及检查体验运行的上下文(服务器、客户端、工作室模式)。有用于在每个运行时框架上运行任何过程或更新。SoundService | 控制体验中音频播放的各种全球方面,例如扬声器比例和音量声音。还可以包含声音组来控制多个音频信号的音量和动态效果属性。CollectionService | 管理从服务器复制到客户端的标签标记的实例群组(集合),让您更轻松地分配和处理与相关实例组。

云服务

Roblox 还有专门用于处理 Roblox 云中发生的任务和过程的云服务。下表包括一些常见的云服务。

服务 | 描述 :--- | :--- DataStoreService | 用于存储会话之间的持续数据。MemoryStoreService|用于存储快速更改的频繁和临时数据。MessagingService|用于在实时会话期间多服务器通信。

云服务也有相应的网络 API;它们可以通过外部脚本或工具访问。了解更多信息,请参阅打开云