Tích hợp phân phối thành phần (Unity)

Khi tích hợp tính năng phân phối tài sản, trò chơi Unity có thể truy cập vào các gói tài sản bằng cách sử dụng Addressable hoặc AssetBundle. Addressable là giải pháp phân phối thành phần mới và được đề xuất cho trò chơi được xây dựng bằng Unity 2019.4 trở lên, trong khi đó AssetBundle hỗ trợ các gói thành phần trong Unity 2017.4 và 2018.4.

Addressable của Unity

Các trò chơi được xây dựng bằng Unity 2019.4 trở lên nên sử dụng Addressable để phân phối thành phần trên Android. Unity cung cấp Play Asset Delivery (PAD) API để xử lý các gói thành phần Android bằng Addressable. Để biết thông tin về cách sử dụng Addressable, hãy xem:

Sử dụng tệp AssetBundle

Các trò chơi được xây dựng bằng Unity 2017.4 và 2018.4 có thể sử dụng các tệp AssetBundle để phân phối thành phần trên Android. Các tệp AssetBundle chứa thành phần nối tiếp được tải bằng công cụ Unity khi ứng dụng đang chạy. Các tệp này dành riêng cho nền tảng (ví dụ: được tạo dành cho Android) và có thể sử dụng kết hợp với gói thành phần. Trường hợp phổ biến nhất là một tệp AssetBundle được đóng gói thành gói thành phần duy nhất, đồng thời cũng lấy tên là AssetBundle. Nếu muốn linh hoạt hơn trong việc tạo gói tài sản, hãy định cấu hình gói tài sản đó bằng cách sử dụng API.

Khi chạy, sử dụng lớp Play Asset Delivery for Unity để truy xuất gói AssetBundle đã đóng trong gói tài sản.

Điều kiện tiên quyết

  1. Thiết lập môi trường phát triển:

OpenUPM-CLI

Nếu đã cài đặt OpenUPM CLI, bạn có thể cài đặt sổ đăng ký OpenUPM bằng lệnh sau:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Mở package manager settings (cài đặt trình quản lý gói) bằng cách chọn mục Edit > Project Settings > Package Manager (Chỉnh sửa > Cài đặt dự án > Trình quản lý gói) trong trình đơn Unity.

  2. Thêm OpenUPM làm sổ đăng ký trong phạm vi vào cửa sổ Trình quản lý gói:

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.assetdelivery
      com.google.android.appbundle
    
  3. Mở trình đơn trình quản lý gói bằng cách chọn mục Window > Package Manager (Cửa sổ > Trình quản lý gói) trong trình đơn Unity.

  4. Đặt trình đơn thả xuống phạm vi của trình quản lý để chọn Sổ đăng ký của tôi.

  5. Chọn gói Trình bổ trợ Google Play Integrity cho Unity trong danh sách gói rồi nhấn vào Cài đặt.

Nhập từ GitHub

  1. Tải bản phát hành .unitypackage mới nhất xuống từ GitHub.

  2. Nhập tệp .unitypackage bằng cách chọn mục trong trình đơn Unity Assets > Import package > Custom Package (Nội dung > Nhập gói > Tuỳ chỉnh gói) rồi nhập tất cả các mục.

  1. Tạo AssetBundles trong Unity.

Sử dụng giao diện người dùng để định cấu hình AssetBundle

  1. Định cấu hình từng AssetBundle trong gói thành phần:

    1. Chọn Google > Android App Bundle > Cài đặt phân phối nội dung.
    2. Để chọn thư mục chứa trực tiếp tệp AssetBundle, nhấp vào Thêm thư mục.

    Nút Add Folder (Thêm thư mục) trong phần Asset Delivery Settings (Cài đặt phân phối thành phần) trong Unity

  2. Đối với mỗi gói, hãy thay đổi Chế độ phân phối thành Thời gian cài đặt, Theo dõi nhanh hoặc Theo yêu cầu. Giải quyết lỗi hoặc phần phụ thuộc và đóng cửa sổ.

    Bộ chọn chế độ phân phối của Asset Delivery cho mỗi gói trong Unity

  3. Chọn Google > Tạo Android App Bundle để tạo gói ứng dụng.

  4. (Không bắt buộc) Định cấu hình gói ứng dụng để hỗ trợ nhiều định dạng nén kết cấu.

Định cấu hình gói thành phần bằng API

Có thể định cấu hình phân phối nội dung qua tập lệnh trình chỉnh sửa. Tập lệnh này chạy như một phần của hệ thống xây dựng tự động.

Sử dụng lớp AssetPackConfig để xác định những thành phần cần đưa vào bản dựng Android App Bundle cũng như chế độ phân phối của thành phần đó. Các gói tài sản này không cần chứa AssetBundle.

public void ConfigureAssetPacks {
   // Creates an AssetPackConfig with a single asset pack, named
   // examplePackName, containing all the files in path/to/exampleFolder.
   var assetPackConfig = new AssetPackConfig();
   assetPackConfig.AddAssetsFolder("examplePackName",
                                   "path/to/exampleFolder",
                                   AssetPackDeliveryMode.OnDemand);

   // Configures the build system to use the newly created assetPackConfig when
   // calling Google > Build and Run or Google > Build Android App Bundle.
   AssetPackConfigSerializer.SaveConfig(assetPackConfig);

   // Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
   BuildBundle(new buildPlayerOptions(), assetPackConfig);
}

Ngoài ra, bạn còn có thể sử dụng phương thức tĩnh BuildBundle trong lớp Bundletool để tạo Android App Bundle với gói thành phần, BuildPlayerOptions và AssetPackConfig.

Để tham khảo hướng dẫn từng bước, hãy xem nội dung Sử dụng Play Asset Delivery trong Lớp học lập trình trò chơi Unity.

Tích hợp với API Unity Play Asset Delivery

API Unity Play Asset Delivery cung cấp chức năng yêu cầu gói thành phần, quản lý tài nguyên tải xuống và truy cập thành phần. Trước tiên, hãy nhớ Thêm trình bổ trợ Unity vào dự án.

Hàm sử dụng trong API tuỳ thuộc vào cách bạn tạo các gói thành phần.

Nếu bạn đã sử dụng trình bổ trợ giao diện người dùng tạo gói thành phần, hãy chọn Gói thành phần được định cấu hình trình bổ trợ.

Nếu bạn đã dùng API (hoặc trình bổ trợ giao diện người dùng) để tạo gói thành phần, hãy chọn Gói thành phần được định cấu hình API.

Các bước tiếp theo

Thử nghiệm việc phân phối thành phần trên thiết bị và trên Google Play.