Làm quen với trình bổ trợ Google Play Games cho Unity

Chủ đề này mô tả cách thiết lập dự án Unity để sử dụng trình bổ trợ Google Play Games cho Unity. Các nhiệm vụ bao gồm thiết lập dự án, chọn nền tảng xã hội và thiết lập phương thức đăng nhập cho người chơi.

Trước khi bắt đầu

Cài đặt trình bổ trợ

  1. Tải trình bổ trợ bằng cách sử dụng một trong các tuỳ chọn sau:

  2. Tìm tệp unitypackage trong thư mục current-build. Tệp này là trình bổ trợ. Ví dụ: tệp sẽ có dạng như sau:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. Mở dự án trò chơi của bạn trong Unity.

  4. Nhập tệp unitypackage vào nội dung của dự án bằng cách nhấp vào mục trong trình đơn Assets > Import Package > Custom Package (Nội dung > Nhập gói > Tuỳ chỉnh gói).

  5. 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.

    1. Trong trình đơn chính, hãy nhấp vào File > Build Settings… (Tệp > Cài đặt bản dựng).

    2. Chọn Android rồi nhấp vào Switch Platform (Chuyển nền tảng).

    3. 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.

Tải 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.

  1. Tải các tài nguyên Android cho trò chơi của bạn.

    1. Trong Play Console, hãy mở dự án Dịch vụ trò chơi của Play cho trò chơi của bạn.

    2. Nhấp vào thẻ Thành tích, sau đó nhấp vào Nhận tài nguyên.

    3. Trong cửa sổ Xuất tài nguyên, hãy nhấp vào thẻ Android.

    4. Chọn và sao chép nội dung XML.

Thiết lập dự án Unity

  1. Thêm tài nguyên Android vào dự án Unity.

    1. Trong Unity, hãy nhấp vào ** Cửa sổ > Google Play Games > Setup... > Android Setup**. (Window > Google Play Games > Thiết lập… > Thiết lập Android).

    2. Hoàn tất các mục sau trong cửa sổ thiết lập:

    3. Directory to save constants (Thư mục lưu hằng số): Thư mục để lưu tệp hằng số.

    4. Constants class name (Tên lớp hằng số): Tên của lớp C# cần tạo, bao gồm cả không gian tên.

    5. Resources Definition (Định nghĩa tài nguyên): Dán dữ liệu tài nguyên Android từ Play Console vào đây.

    6. Web client ID (Mã ứng dụng web): đây là mã ứng dụng khách của ứng dụng web được liên kết. Mã này chỉ cần thiết khi bạn 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.

    7. 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.

Thiết lập Android

Thiết lập đường dẫn đến cách cài đặt SDK Android của bạn trong Unity. Tính năng này nằm trong trình đơn tuỳ chọn, ở mục Công cụ ngoài.

Để định cấu hình trò chơi Unity chạy trong Google Play Games trên Android, trước tiên, hãy mở trình quản lý SDK Android và xác minh rằng bạn đã tải các gói sau xuống. Tuỳ thuộc vào việc bạn đang sử dụng trình quản lý SDK từ Android Studio hay trình quản lý SDK độc lập, tên của các thành phần có thể khác nhau. - Dịch vụ Google Play - Thư viện hỗ trợ Android - Kho lưu trữ Maven cục bộ dành cho các Thư viện hỗ trợ (hay còn gọi là Kho lưu trữ hỗ trợ Android) - Kho lưu trữ của Google - Android 6.0 (API 23) (cấu hình này không ảnh hưởng đến phiên bản SDK tối thiểu).

Tiếp theo, hãy định cấu hình tên gói của trò chơi. Để thực hiện việc này, hãy nhấp vào File > Build Settings (Tệp > Cài đặt bản dựng), chọn nền tảng Android và nhấp vào Player Settings (Cài đặt người chơi) để hiển thị cửa sổ Cài đặt người chơi trong Unity. Trong cửa sổ đó, hãy tìm chế độ cài đặt Bundle Identifier (Mã nhận dạng gói) ở mục Cài đặt khác. Nhập tên gói của bạn vào đây (ví dụ: com.example.my.awesome.game).

Để đăng nhập vào Dịch vụ trò chơi của Play, bạn cần ký tệp APK của mình, hãy đảm bảo bạn ký bằng đúng chứng chỉ, tức là chứng chỉ tương ứng với dấu vân tay chứng chỉ SHA1 mà bạn đã nhập vào Play Consoles trong quá trình thiết lập.

Tiếp theo, nhấp vào mục trong trình đơn Window |Google Play Games|Setup - Android setup (Cửa sổ |Google Play Games|Thiết lập – Thiết lập Android). Cửa sổ này sẽ hiển thị màn hình thiết lập Android.

Nhập tên lớp Hằng số. Đây là tên của lớp đủ điều kiện sẽ được cập nhật (hoặc được tạo) chứa mã nhận dạng của tài nguyên trò chơi. Định dạng tên sẽ là <namespace>.<classname>. Ví dụ: AwesomeGame.GPGSIds

Dán dữ liệu định nghĩa tài nguyên. Đây là dữ liệu XML từ Google Play Console chứa ID tài nguyên cũng như ID ứng dụng cho Android.

Bạn có thể tìm thấy dữ liệu này trong Google Play Console bằng cách nhấp vào mục "Nhận tài nguyên" trên bất kỳ trang tài nguyên nào (ví dụ: Thành tích hoặc Bảng xếp hạng), sau đó nhấp vào Android.

Sau khi dán dữ liệu vào vùng văn bản, hãy nhấp vào nút Thiết lập.

Lưu ý: Nếu đang sử dụng ứng dụng web hoặc máy chủ phụ trợ cho trò chơi, bạn có thể liên kết ứng dụng web với trò chơi để bật mã thông báo và/hoặc địa chỉ email của người chơi. Để thực hiện việc này, hãy liên kết ứng dụng web với trò chơi trong Google Play Console, đồng thời nhập ID ứng dụng khách cho ứng dụng web vào hộp thoại thiết lập.

Hướng dẫn bổ sung về cách phát triển Android trên Windows

Nếu đang sử dụng Windows, bạn phải đảm bảo là Unity có thể truy cập vào quá trình cài đặt SDK Java của bạn. Để thực hiện việc này:

  1. Hãy đặt biến môi trường JAVA_HOME thành đường dẫn cài đặt SDK Java (ví dụ: C:\Program Files\Java\jdk1.7.0_45).
  2. Thêm thư mục bin của SDK Java vào biến môi trường PATH (ví dụ: C:\Program Files\Java\jdk1.7.0_45\bin)
  3. Khởi động lại.

Cách chỉnh sửa các biến môi trường: Trong Windows 2000/XP/Vista/7, hãy nhấp chuột phải vào My Computer > Properties (Máy tính của tôi > Thuộc tính), chọn Advanced System Properties (Thuộc tính hệ thống nâng cao) (hoặc chọn System Properties (Thuộc tính hệ thống) rồi nhấp vào thẻ Advanced (Nâng cao)), sau đó nhấp vào Environment Variables (Biến môi trường). Trên Windows 8, hãy nhấn Phím Windows + W rồi tìm các biến môi trường. Để biết thêm thông tin, vui lòng tham khảo tài liệu dành cho phiên bản Windows mà bạn sử dụng.

Chạy dự án

Nếu đang làm việc với mẫu Smoketest, bạn có thể tạo và chạy dự án tại thời điểm này. Bạn sẽ thấy thao tác đăng nhập tự động khi Smoketest khởi động.

Để tạo và chạy trên Android, hãy nhấp vào File > Build Settings (Tệp > Cài đặt bản dựng), chọn nền tảng Android, sau đó chọn Switch to Platform > Build and Run (Chuyển sang nền tảng > Tạo và chạy).

Chọn một nền tảng mạng xã hội

Trình bổ trợ Google Play Games triển khai giao diện xã hội của Unity, để tương thích với các 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 Google Play Games 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, 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 SocialSocial.Active sẽ được trình bổ trợ Google Play Games thực hiện. Đây là hành vi mong muốn của hầu hết các trò chơi sử dụng trình bổ trợ.

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 mà không cần ghi đè chế độ cài đặt mặc định. Để thực hiện việc này:

  1. Đừng gọi PlayGamesPlatform.Activate
  2. Nếu Xyz là tên của phương thức mà bạn muốn gọi trên lớp Social, thì đừng gọi Social.Xyz. Thay vào đó, hãy gọi PlayGamesPlatform.Instance.Xyz
  3. Đừng sử dụng Social.Active khi tương tác với Google Play Games. Thay vào đó, hãy dùng PlayGamesPlatform.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 cho Unity.

Nếu người dùng chưa từng sử dụng 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.

    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 Google Play Games API (API Google Play Games) 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.

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, vui lòng xem Thông tin đăng nhập Google cho trang web.

Cách nhận mã truy cập phía máy chủ:

  1. Định cấu hình mã ứng dụng web được liên kết với trò chơi của bạn trong Play Game Console.

  2. Gọi PlayGamesPlatform.Instance.RequestServerSideAccess sau khi xác thực người chơi để lấy mã truy cập phía máy chủ.

  3. Truyền mã này vào ứng dụng máy chủ của bạn.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Thiết lập và thêm tính năng