Trong sử dụng lại mã, bạn có thể đã nhận thấy sử dụng thường xuyên của phương thức game:GetService() . Các dịch vụ Roblox cho phép bạn truy cập các tính năng tích hợp của động cơ, như bán các mặt hàng trong kinh nghiệm, kích hoạt trò chuyện, chơ
Trên thực tế, dịch vụ là bước đầu tiên trong mẫu phổ biến nhất của Roblox development :
- Nhận dịch vụ.
- Yêu cầu các tập tin mô-đun.
- Thêm chức năng địa phương.
- Thêm các sự kiện màn hình mà nó sẽ kích hoạt các hành động đó.
Ví dụ, bạn có thể muốn lưu vị trí của người chơi trên thế giới khi họ thoát khỏi trải nghiệm của bạn:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Hàm chức năng địa phương gọi hàm chức năng tái sử dụng trong kịch bản module.
local function saveProgress(character)
-- Nhận vị trí của nhân vật người chơi.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Sử dụng chức năng saveData trong script module, which writes to the
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Một chức năng địa phương khác gọi saveProgress() khi một nhân vật được xóa
-- từ kinh nghiệm (trong trường hợp này, khi người chơi rời đi).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Gọi onPlayerAdded khi một người chơi đầu tiên kết nối với trải nghiệm.
Players.PlayerAdded:Connect(onPlayerAdded)
Một số chi tiết chính xác bao gồm:
- Vì bạn chỉ nên lấy một dịch vụ một lần cho mỗi script, nên thông lệ là đặt biến tương tự như dịch vụ. Điều này áp dụng cho các script module, với.
- Bạn lấy dịch vụ với biến toàn cầu game, một tham chiếu đến rễ của mô hình dữ liệu.
- Roblox không đưa ra các đảm bảo xung quanh lệnh tải (và phát trực tiếp instanace tiếp tục phức tạp hơn nữa những gì được và không được tải vào bất kỳ thời điểm nào), vì vậy sử dụng Instance:WaitForChild() là một biện pháp an toàn quan trọng.
Thay vì so sánh các thư viện tiêu chuẩn , hàm global và biến , hoặc các thư viện của bên thứ ba, một phần lớn của sự phát triển của Roblox là xác định những gì nhiều, nhiều dịch vụ có thể giúp bạn thêm các chứ
Dịch Vụ Contender
Các dịch vụ container có thể chứa và ảnh hưởng đến các thống kê khác. Các dịch vụ container này được đặt tại gốc của mô hình dữ liệu và có thể được nhìn thấy trong cửa sổ Explorer của Studio. Tổng hợp, các dịch vụ container này tạo thành một chuỗi thứ hạng cho mô hình dữ
Service | Description :--- | :--- Workspace | Contains all objects that render in the 3D world, such as parts and terrain. Lighting | Contains objects for setting universal lighting effects, such as Class.Atmosphere</
Để xem xét thêm mô hình dữ liệu, bạn có thể sử dụng các phương pháp này:
- game:FindService() tìm kiếm cho một Instanz của dịch vụ được chỉ định.
- game:GetChildren() trả lại một loạt các con của tất cả các mô hình dữ liệu, là các dịch vụ container cấp cao nhất.
- game:GetDescendants() trả lại một loạt các con cháu của model dữ liệu, bao gồm tất cả các dịch vụ container và con cháu của chúng.
Để biết thêm thông tin về các dịch vụ container, xem tài liệu mô hình dữ liệu.
Dịch vụ Lập trình
Các dịch vụ script cung cấp các chức năng tiêu chuẩn trong động cơ Roblox mà bạn gọi là script. Bảng sau đây bao gồm một số dịch vụ script phổ biến.
Dịch Vụ Đám Mây
Roblox cũng có các dịch vụ đám mây đặc biệt để xử lý các nhiệm vụ và quy trình xảy ra trong Roblox cloud. Bảng sau đây bao gồm một số dịch vụ đám mây phổ biến.
Service | Description :--- | :--- DataStoreService | For storing persistent data across sessions. MemoryStoreService | For storing frequent and ephemeral data that change rapidly. MessagingService | For communicating between multiple servers during live sessions.
Các dịch vụ đám mây cũng có các API web tương ứng; chúng có thể được truy cập từ các script hoặc công cụ bên ngoài. Để biết thêm thông tin, hãy xem Mở Cloud .