在重用代碼中,您可能已經注意到Roblox服遊戲的使用率。Roblox服務讓您可以存取引擎的內置功能,例如出售體驗內物品、啟用聊天、播放聲音、動畫對象和管理實例。
服務是最基本、最常見的Roblox開發模式 的第一個步驟 :
- 取得服務。
- 需要模組脚本。
- 添加本地功能。
- 添加 事件 這些會導致這些功能的發生。
舉例來說,你可能想要在玩家離開體驗後儲存他們的位置:
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)
一些關鍵細節包括:
- 因為您只能擷取服務一次,所以這個規則是給變量相同的名稱作為服務的名稱。這個規則也適用於模組脚本。
- 您使用 global 變量 game 來取回服務,這是資料模型的根。
- Roblox 不提供載入程序 (和 實例串流 更進一步 complicates 什麼是和不是載入在任何指定時間) 的保證,因此使用 Instance:WaitForChild() 是一個重要的安全措施。
相較於比較 標準圖書館 、 全球功能變數和變數 或第三方圖書館,大部分 Roblox 開發都是確定哪些服務可以幫助您將所需功能添加到您的體驗。 在上面的例子中,而不是使用標準 I/O 圖書館來寫入硬碟,您使用 雲服務 來存��
容器服務
容器服務可以包含並影響其他對象。這些容器服務位於數據模型的根部,並且在 Studio 的 Explorer 窗口中可以視覺化。 集合地,這些容器服務形成數據模型的結構階層,因此 Roblox 引擎可以正確解釋並渲染您的空間。下表包括一些常見的容器服務。
服務 | 說明 :--- | :--- Workspace | 包含在 3D 世界中渲染的所有物件,例如零件和地形。 Lighting | 包含設定全球照明效
要進一步檢查資料模型,您可以使用以下方法:
- game:FindService() 搜尋指定服務的實例。
- game:GetChildren() 返回一個資料模型的所有根級兒童,這是資料模型的上層容器服務。
- game:GetDescendants() 返回包含所有容器服務和其子的資料模型所有子模型的所有子模型。
有關更多關於容器服務的資訊,請參閱資料模型文件。
服務
服務提供商在 Roblox 引擎中提供標準功能,您可以在指定的指令碼內呼叫。下表包括一些常見的服務提供商。
服務 | 說明 :--- | :--- TweenService | 用於從開始到結束的音頻播放中監視音頻特性,包括音量、動態效果和音頻震動。 MarketplaceService | 允許您聯絡音效群來更好地管理音效群,並且在多個音效群之間更好地工作。 ContextActionService
雲朵服務
Roblox 也提供一些專用於處理 Roblox 雲端的任務和程序。下表包括一些常見的雲端服務。
服務 | 說明 :--- | :--- DataStoreService | 用於存儲會話持續時間的持續資料 MemoryStoreService | 用於存儲快速變更的暫時資料 MessagingService | 用於與多個服務器通信的語音通訊服務 。
雲端服務也有相應的網頁 API;它們可以從外部指令碼或工具檢視。為了取得更多資訊,請參閱 開啟雲端。