Dịch Vụ Trình Chỉnh Nhân Vật

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Dịch vụ Editor Avatar cho phép bạn truy cập và thay đổi avatar của một người trong một trải nghiệm. Dịch vụ Editor Avatar cũng có thể truy cập vào kho đồ của người dùng và thị trường để lưu trang phục và mua món đồ avatar đến tài khoản người dùng.

Chúng tôi khuyến nghị thực hiện Dịch Vụ Trình Chỉnh Nhân Vật với một trình chỉnh nhân vật trong game cho một trải nghiệm tùy chỉnh nhân vật hoàn chỉnh. Xem tham khảo Trình Chỉnh Nhân Vật Đơn Giản Demo để có một ví dụ về tính năng này.

Để bắt đầu sử dụng Dịch Vụ Trình Chỉnh Nhân Vật, bạn phải đầu tiên yêu cầu quyền truy cập vào kho đồ của người dùng. Sau khi quyền truy cập được cho phép, bạn có thể thực hiện các hành động sau:

Yêu cầu quyền truy cập

Để bắt đầu truy cập vào kho đồ của một người dùng, bạn cần phải yêu cầu người dùng cho phép truy cập thông qua PromptAllowInventoryReadAccess() . Bạn cần thực hiện yêu cầu này một lần mỗi phiên.

Sử dụng mẫu mã code sau đây để khởi tạo màn hình chủ động truy cập và lắng nghe phản hồi của người dùng:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Quyền truy cập được cấp!
end

Người dùng nhận được thông báo sau:

Một khi người dùng chấp nhận thông báo, AvatarEditorService có thể bắt đầu truy cập vào kho đồ của người dùng.

Đọc Inventory Người Chơi

Một khi truy cập được cấp bởi người dùng, bạn có thể đọc kho đồ của họ bằng cách sử dụng chức năng GetInventory() , cung cấp một loạt các AvatarAssetTypes để lọc bở

Sử dụng mẫu code sau đây để in một danh sách các phụ kiện cụ thể trong kho của người dùng:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Quyền truy cập được cấp!
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory,
Enum.AvatarAssetType.WaistAccessory
}
local pagesObject = AvatarEditorService:GetInventory(assetTypes)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end
end

Tìm kiếm trên Marketplace

AvatarEditorService bao gồm các chức năng và sự kiện cho phép bạn tìm kiếm trong danh mục Roblox. Để tìm kiếm, cung cấp các thông tin của bạn với một hoặc nhiều đối tượng CatalogSearchParams bao gồm một hoặc nhiều thuộc tính sau đây:

Thuộc tínhMô tả
Các loại tài sảnMột dàn Enum.AvatarAssetType như vậy như Menu.AvatarAssetType.BackAccessory.
Các loại bộ định danhMột dàn Enum.BundleType như dàn Amount.String của Enum.BundleType.BodyParts.
Bộ lọc danh mụcMột Enum.CatalogCategoryFilter mô tả các thể loại danh mục như "Đặc Sắc" hoặc "Cộng Đồng Tạo". Bởi mặc định nó được đặt ở Enum.CatalogCategoryFilter.None
Giá tối đaMột biểu tượng số đại diện cho giá tối đa để bộ lọc.
Giá tối thiểuMột biểu tượng số đơn vị mô tả giá tối thiểu để bộ lọc. Mặc dù thế, giá tối thiểu là 0 .
Tìm kiếmMột chuỗi để truy vấn về mô tả của một mục trong cơ sở dữ liệu.
LoạiMột Enum.CatalogSortType mô tả cách kết quả được sắp xếp. Mặc định nó được đặt thành Enum.CatalogSortType.Relevance .
Bao gồm Off-SaleMột biểu tượng đại diện cho việc bán hàng bị tắt. Mặc định, nó được đặt trên giả sử dưới đây.
ID Người Sáng TạoMột số nguyên tố để xác định một nhà sáng tạo cụ thể. Bạn có thể sử dụng bất kỳ một UserId hoặc một GroupId.
Tên sáng tạoMột chuỗi được sử dụng để tìm kiếm bởi các mục tạo bởi một nhà sáng tạonhất định. Bạn có thể sử dụng bất kỳ Tên người chơi hoặc Tên nhóm nào.

Mẫu mã code sau đây xây dựng một CatalogSearchParams đối tượng cho BackShoulder các loại tài nguyên, và thông qua một 1> Class.AvatarEditorService:SearchCatalog()|SearchCatalog()1> cuộc gọi:


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--Hàm này trả về một CatalogPages bao gồm kết quả.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Lưu Avatar và Trang Phục

Khi được sử dụng kết hợp với một trình chỉnh nhân vật trong game, AvatarEditorService có thể lưu và cập nhật các mặt hàng và trang phục trên nền tảng Roblox. Người dùng không nhận được các mặt hàng này khi lưu một avatar hoặc trang phục.

Bất kỳ HumanoidDescription có thể được lưu vào avatar người dùng với PromptSaveAvatar() . Điều này có thể bao gồm:

  • Cài đặt avatar trước đã được xây dựng bằng cách sử dụng mục目录 hiện có.
  • Bất kỳ cấu hình nào mà người dùng đã chọn thông qua một editor avatar trong trò chơi.

AvatarEditorService:PromptSaveAvatar() không đưa ra kết quả, bạn có thể nhận kết quả bằng cách lắng nghe sự kiện AvatarEditorService.PromptSaveAvatarCompleted .

Mã sau đây sẽ lưu một HumanoidDescription hiện tại bằng cách sử dụng PromptSaveAvatar() và kiểm tra cho một sự kiện thành công AvatarEditorService.PromptSaveAvatarCompleted :


local AvatarEditorService = game:GetService("AvatarEditorService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local currentDescription = humanoid:GetAppliedDescription()
AvatarEditorService:PromptSaveAvatar(currentDescription, humanoid.RigType)
local result = AvatarEditorService.PromptSaveAvatarCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Hình đại diện lưu!
end

Để lưu bất kỳ HumanoidDescription nào như một bộ trang phục (mà không phải qua màn hình người dùng hiện tại), hãy sử dụng AvatarEditorService:PromptCreateOutfit() .

Một khi gọi, bạn có thể nhận kết quả của AvatarEditorService:PromptCreateOutfit() bằng cách lắng nghe sự kiện AvatarEditorService.PromptCreateOutfitCompleted .

Mẫu code sau đây tạo một bộ trang phục với AvatarEditorService:PromptCreateOutfit() và lắng nghe cho một sự kiện thành công AvatarEditorService.PromptCreateOutfitCompleted :


local AvatarEditorService = game:GetService("AvatarEditorService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local currentDescription = humanoid:GetAppliedDescription()
AvatarEditorService:PromptCreateOutfit(currentDescription, humanoid.RigType)
local result = AvatarEditorService.PromptCreateOutfitCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Trang phục lưu xong rồi!
end

Mua hàng

Khi lưu bất kỳ một avatar hoặc trang phục nào sử dụng các mục của các thương hiệu, người dùng sẽ không nhận được bất kỳ vật phẩm nào mà họ không sở hữu. Trước khi lưu một avatar hoặc trang phục, hãy kiểm tra

Nếu bạn không muốn thực hiện mua hàng mục, bạn có thể thay vào đó cho phép người dùng yêu thích các món đồ không thuộc sở hữu với AvatarEditorService:PromptSetFavorite() .