Tài liệu này hướng dẫn bạn cách thiết lập dự án Unity để sử dụng trình bổ trợ Google Play Games cho Unity. Bạn sẽ tìm hiểu cách cài đặt trình bổ trợ và định cấu hình dự án Unity. Tài liệu này cũng đề cập đến cách xác minh dịch vụ đăng nhập.
Trước khi bắt đầu
Xem các yêu cầu về phần mềm. Thiết lập Play Console và cài đặt Unity Hub.
Thiết lập Play Console cho trò chơi của bạn.
Cài đặt Unity Hub và tạo trò chơi trong Unity.
Cài đặt trình bổ trợ
Để tải xuống và cài đặt trình bổ trợ Google Play Games cho Unity, hãy làm theo các bước sau trong Unity Hub:
Tải kho lưu trữ GitHub xuống.
Trong thư mục
current-build
, hãy tìm tệpunitypackage
. Tệp này đại diện cho trình bổ trợ. Ví dụ: tệp sẽ có dạng như sau:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Thiết lập dự án Unity
Để thiết lập một dự án Unity trong phần cài đặt trình phát, hãy làm theo các bước sau:
Mở dự án trò chơi của bạn.
Trong Unity Hub, hãy nhấp vào Assets > Import Package > Custom Package (Nội dung > Nhập gói > Gói tuỳ chỉnh) để nhập tệp
unitypackage
vào nội dung của dự án.Hãy đảm bảo nền tảng bản dựng hiện tại của bạn được đặt là Android.
Trong trình đơn chính, hãy nhấp vào File > Build Settings (Tệp > Cài đặt bản dựng).
Chọn Android rồi nhấp vào Switch Platform (Chuyển nền tảng).
Sẽ có một mục mới trong trình đơn tại Window > Google Play Games (Cửa sổ > Google Play Games). Nếu không có, hãy làm mới nội dung bằng cách nhấp vào Assets > Refresh (Nội dung > Làm mới), sau đó thử đặt lại nền tảng bản dựng.
Trong Unity Hub, hãy nhấp vào File > Build Settings > Player Settings > Other Settings (Tệp > Cài đặt bản dựng > Cài đặt trình phát > Các chế độ cài đặt khác).
Trong hộp Cấp API mục tiêu, hãy chọn một phiên bản.
Trong hộp Scripting backend, hãy nhập
IL2CPP
.Trong hộp Target architectures (Kiến trúc mục tiêu), hãy chọn một giá trị.
Ghi lại tên gói package_name.Bạn có thể sử dụng thông tin này sau.

Tạo một kho khoá mới
Để xác thực thông tin đăng nhập, bạn cần có một khoá. Hãy làm theo các bước sau:
- Trong Unity Hub, hãy nhấp vào File > Build settings > Player settings (Tệp > Cài đặt bản dựng > Cài đặt trình phát).
- Trong phần Chế độ cài đặt xuất bản, hãy nhấp vào Trình quản lý kho khoá.
- Trong cửa sổ Keystore manager (Trình quản lý kho khoá), hãy nhấp vào Keystore > Create new > Anywhere (Kho khoá > Tạo mới > Mọi nơi).
- Chọn một thư mục và đặt tên cho kho khoá.
- Trong hộp Mật khẩu, hãy nhập mật khẩu rồi xác nhận.
- Nhấp vào Thêm khoá.
Ghi chú tên thư mục. Bạn có thể dùng tên này để tạo thông tin xác thực trong Google Cloud.
Sao chép tài nguyên Android từ Play Console
Mỗi thành tích, bảng xếp hạng và sự kiện mà bạn tạo trong Play Console đều bao gồm một tài nguyên Android mà bạn sử dụng khi thiết lập dự án Unity.
Để tải các tài nguyên Android cho trò chơi của bạn, hãy làm theo các bước sau:
Trong Google Play Console, hãy mở trò chơi.
Trên trang Dịch vụ trò chơi của Play – Cấu hình (Phát triển > Dịch vụ trò chơi của Play > Thiết lập và quản lý > Cấu hình), hãy nhấp vào Nhận tài nguyên.
Trong cửa sổ Tài nguyên, hãy nhấp vào thẻ Android(XML).
Chọn và sao chép nội dung tài nguyên Android (
AndroidManifest.xml
).
Thêm tài nguyên Android vào dự án Unity
Thêm các tài nguyên Android sau vào dự án Unity:
Trong Unity Hub, hãy nhấp vào Window (Cửa sổ) > Google Play Games > Setup (Thiết lập) > Android Setup (Thiết lập Android).
- Trong trường Directory to save constants (Thư mục lưu hằng số), hãy nhập tên thư mục cho tệp hằng số.
Trong trường Constants class name (Tên lớp hằng số), hãy nhập tên của lớp C# cần tạo, bao gồm cả không gian tên.
Ví dụ: nếu lớp C# là
id.cs
và có trong Assets > myproject > scripts > id.cs. Tên lớp hằng số có thể làmyproject.scripts.id
.Trong trường Resources definition (Định nghĩa tài nguyên), hãy dán dữ liệu tài nguyên Android (tệp
AndroidManifest.xml
) mà bạn đã sao chép từ Google Play Console.Không bắt buộc: Trong trường Mã ứng dụng khách, hãy nhập mã ứng dụng khách của ứng dụng web được liên kết.
Để lấy mã ứng dụng khách cho trò chơi của bạn trên Google Cloud, hãy xem phần Tạo mã ứng dụng khách.
Bạn chỉ cần mã này nếu có phần phụ trợ dựa trên nền tảng web cho trò chơi của mình và cần một mã uỷ quyền máy chủ để trao đổi mã truy cập của máy chủ phụ trợ, hoặc nếu bạn cần mã nhận dạng người chơi để thực hiện các lệnh gọi API khác ngoài trò chơi.
Nhấp vào Setup (Thiết lập). Thao tác này sẽ định cấu hình trò chơi của bạn với mã ứng dụng khách và tạo một lớp C# chứa hằng số cho mỗi tài nguyên Android của bạn.
Trong Unity Hub, hãy nhấp vào Window (Cửa sổ) > Google Play Games > Setup (Thiết lập) > Nearby Connections Setup (Thiết lập Nearby Connections).
Trong trường Mã dịch vụ kết nối lân cận, hãy nhập package_name.
Sử dụng cùng một package_name mà bạn đã dùng trong thiết lập dự án Unity.
Nhấp vào Setup (Thiết lập).
Chọn một nền tảng mạng xã hội
Trình bổ trợ Dịch vụ trò chơi của Google Play triển khai giao diện xã hội của Unity để tương thích với những trò chơi đã sử dụng giao diện đó khi tích hợp với các nền tảng khác. Tuy nhiên, một số tính năng chỉ dành riêng cho Play Games và được cung cấp dưới dạng tiện ích mở rộng tới giao diện mạng xã hội chuẩn do Unity cung cấp.
Các lệnh gọi API chuẩn có thể được truy cập thông qua đối tượng Social.Active, là một đối tượng tham chiếu đến giao diện ISocialPlatform. Bạn có thể truy cập các tiện ích mở rộng không tiêu chuẩn của Dịch vụ trò chơi của Google Play bằng cách truyền đối tượng Social.Active vào lớp PlayGamesPlatform, nơi có các phương thức bổ sung.
Dùng trình bổ trợ này mà không cần ghi đè nền tảng mạng xã hội mặc định
Khi bạn gọi PlayGamesPlatform.Activate
, Dịch vụ Google Play Games sẽ trở thành phương thức triển khai nền tảng xã hội mặc định, nghĩa là lệnh gọi tĩnh đến các phương thức trong Social
và Social.Active
sẽ được trình bổ trợ Dịch vụ Google Play Games thực hiện. Đây là hành vi của hầu hết các trò chơi sử dụng trình bổ trợ này.
Tuy nhiên, nếu vì lý do nào đó bạn vẫn muốn sử dụng phương thức triển khai mặc định (chẳng hạn như sử dụng phương thức này để gửi thành tích và bảng xếp hạng đến một nền tảng xã hội khác), bạn có thể sử dụng trình bổ trợ Google Play Games Services mà không cần ghi đè chế độ cài đặt mặc định. Để thực hiện việc này:
- Không gọi
PlayGamesPlatform.Activate
- Nếu
Xyz
là tên của phương thức mà bạn cần gọi trên lớpSocial
, thì đừng gọiSocial.Xyz
. Thay vào đó, hãy gọiPlayGamesPlatform.Instance.Xyz
- Đừng sử dụng
Social.Active
khi tương tác với Dịch vụ Google Play Games. Thay vào đó, hãy dùngPlayGamesPlatform.Instance
Bằng cách đó, bạn thậm chí có thể gửi điểm và thành tích cùng lúc cho 2 hoặc nhiều nền tảng mạng xã hội:
// Submit achievement to original default social platform
Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);
// Submit achievement to Google Play
PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Xác minh dịch vụ đăng nhập
Hệ thống sẽ tự động tìm cách kết nối với Dịch vụ trò chơi của Play bằng dịch vụ Đăng nhập khi trò chơi của bạn mở ra. Nếu kết nối thành công, trò chơi của bạn sẽ hiển thị lời nhắc đăng nhập và sẵn sàng sử dụng trình bổ trợ Google Play Games Services cho Unity.
Nếu người dùng chưa từng sử dụng Dịch vụ Google Play Games trên thiết bị của họ, thì người dùng đó sẽ tự động được chuyển đến màn hình thiết lập một lần để tạo tài khoản Play Games.
Trong phương thức Start
của tập lệnh, hãy chờ nhận kết quả của lần tự động đăng nhập, tìm nạp trạng thái xác thực và tắt các tính năng Dịch vụ trò chơi của Google Play nếu người dùng chưa đăng nhập.
Nếu phiên bản trình bổ trợ Unity là trước v11
, bạn không thể sử dụng tính năng đăng nhập.
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
Mã kết quả là một giá trị enum mà bạn có thể sử dụng để xác định lý do không đăng nhập được.
Nếu muốn dùng nền tảng mạng xã hội của Unity, thì bạn có thể sử dụng đoạn mã sau đây:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Bạn không thể thực hiện bất kỳ lệnh gọi API Dịch vụ trò chơi của Google Play nào cho đến khi nhận được giá trị trả về thành công từ Authenticate
. Do đó, các trò chơi nên hiển thị một màn hình chờ cho đến khi hệ thống thực hiện lệnh gọi lại để đảm bảo rằng người dùng không thể bắt đầu chơi trò chơi nếu quá trình xác thực chưa hoàn tất.
Sử dụng Tính năng ký ứng dụng của Play
Google quản lý và bảo vệ khoá ký cho ứng dụng của bạn bằng Tính năng ký ứng dụng của Play. Bạn có thể dùng Tính năng ký ứng dụng của Play để ký tệp Android App Bundle phân phối đã được tối ưu hoá. Tính năng ký ứng dụng của Play lưu trữ khoá ký ứng dụng của bạn trên cơ sở hạ tầng bảo mật của Google. Để sử dụng Tính năng ký ứng dụng của Play, trước tiên, bạn phải tạo và tải một tệp AAB xuống từ Unity Hub. Sau đó, bạn có thể tải tệp AAB lên Play Console và tạo một bản phát hành kiểm thử nội bộ.
Tạo tệp AAB
Để tạo tệp AAB trong Unity Hub, hãy làm theo các bước sau:
- Trong Unity Hub, hãy nhấp vào File > Build settings (Tệp > Cài đặt bản dựng).
Chọn Build App Bundle (Google Play) (Tạo gói ứng dụng (Google Play)).
Để biết thêm thông tin, hãy xem phần Thông tin tham khảo về chế độ cài đặt bản dựng Android.
Nhấp vào Build (Bản dựng).
Tải tệp AAB xuống từ Unity Hub.
Tạo bản phát hành thử nghiệm nội bộ
Để tạo một bản phát hành thử nghiệm nội bộ và thêm người kiểm thử trong Play Console, hãy thực hiện các bước sau:
- Trong Google Play Console, hãy chọn một trò chơi.
- Chuyển đến trang Kiểm thử và phát hành (Kiểm thử > Kiểm thử nội bộ).
- Nhấp vào Tải lên rồi chọn tệp AAB.
- Trong trường Thông tin chi tiết về bản phát hành, hãy nhập tên.
- Nhấp vào Tiếp theo rồi xem lại thông tin chi tiết về bản phát hành.
- Nhấp Lưu và xuất bản.
Trên thẻ Người kiểm thử, hãy nhấp vào Tạo danh sách email để thêm tối đa 100 người kiểm thử.
Để biết thêm thông tin, hãy xem bài viết Thử nghiệm nội bộ: quản lý tối đa 100 người thử nghiệm.
Trong phần Địa chỉ email hoặc URL để gửi phản hồi, hãy nhập một địa chỉ email hoặc URL để gửi phản hồi.
Nhấp vào Lưu.
Xác minh thông tin đăng nhập để ký ứng dụng
- Trong Google Play Console, hãy chọn một trò chơi.
- Chuyển đến trang Kiểm thử và phát hành (Thiết lập > Ký ứng dụng).
- Xác minh thông tin đăng nhập để ký ứng dụng.
Tạo bản dựng và chạy dự án
Bạn có thể tạo và chạy dự án trò chơi tại thời điểm này. Khi trò chơi bắt đầu, bạn sẽ thấy thao tác đăng nhập tự động.
Bạn cần một thiết bị thực chạy Android đã bật tính năng gỡ lỗi qua USB hoặc một trình mô phỏng có thể chạy dự án đã phát triển.
Truy xuất mã xác thực máy chủ
Để truy cập API Google trên máy chủ web phụ trợ thay mặt cho người chơi hiện tại, bạn cần lấy mã xác thực từ ứng dụng khách và truyền mã này đến ứng dụng máy chủ web của bạn. Sau đó, bạn có thể đổi mã đó lấy mã truy cập để gọi đến nhiều API. Để biết thông tin về quy trình, hãy xem phần đăng nhập bằng Google cho web.
Cách nhận mã truy cập phía máy chủ:
- Thêm mã ứng dụng web cho trò chơi của bạn trong Play Console.
- Trong Google Play Console, hãy chọn trò chơi của bạn.
- Trên trang Cấu hình (Tăng số lượng người dùng > Dịch vụ trò chơi của Play > Thiết lập và quản lý > Cấu hình), hãy nhấp vào Thêm thông tin xác thực.
- Trên trang Thêm thông tin xác thực, hãy chọn Máy chủ trò chơi.
- Tạo mã ứng dụng OAuth 2.0.
- Ghi lại giá trị mã ứng dụng khách. Bạn sẽ cần cung cấp giá trị này sau.
Thêm mã ứng dụng khách web vào Unity Hub.
- Trong Unity Hub, hãy thiết lập Google Play Games cho Unity và đăng nhập.
- Trong Unity Hub, hãy chuyển đến Window (Cửa sổ) > Google Play Games > Setup (Thiết lập) > Android Setup (Thiết lập Android).
- Nhập giá trị mã ứng dụng khách.
Truy xuất mã xác thực máy chủ cho các phạm vi bổ sung.
C#
using GooglePlayGames.BasicApi; // Define selectedScope having additional identity scopes. private List
selectedScopes = new List (); // Add scopes you want to request. selectedScopes.Add(AuthScope.OPEN_ID); selectedScopes.Add(AuthScope.PROFILE); selectedScopes.Add(AuthScope.EMAIL); // Call RequestServerSideAccess with additional scopes and retrieve // authcode and grantedscopes list. PlayGamesPlatform.Instance.RequestServerSideAccess( /* forceRefreshToken= */ false,selectedScopes (AuthResponse authResponse) => { string authCode = authResponse.GetAuthCode(); List grantedScopes = authResponse.GetGrantedScopes(); // send authCode to server... });
Thiết lập và thêm tính năng
Bật tính năng Dịch vụ trò chơi của Play.
Thêm tính năng vào trò chơi bằng cách sử dụng Play Games Services API (API Dịch vụ trò chơi của Play):
Recall API cho Unity (chỉ được hỗ trợ cho trình bổ trợ Unity phiên bản 11 trở lên)