服務

*此內容是使用 AI(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用於在直播會話中進行多伺服器之間的通信。

雲服務也有相應的網絡 API;它們可以從外部腳本或工具訪問。欲了解更多信息,請參見 開放雲

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。