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

Stay organized with collections Save and categorize content based on your preferences.

Chủ đề này mô tả cách thiết lập dự án Unity của bạn để sử dụng trình bổ trợ Google Play Games cho Unity. Các nhiệm vụ này bao gồm thiết lập dự án, chạy dự án, chọn nền tảng xã hội và xử lý đăng nhập của 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 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. Nếu không có, hãy làm mới nội dung bằng cách nhấp vào 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 Tải 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 ** Windows > Google Play Games > Thiết lập... > Android Setup**. (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. Tên lớp hằng số: Tên của lớp C# cần tạo, bao gồm cả vùng chứa tên.

    5. Đị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ã xác thực 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 cuộc gọi API khác ngoài trò chơi.

    7. Nhấp vào 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 Tệp > Cài đặt bản dựng, chọn nền tảng Android và nhấp vào 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 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 đang đăng nhập bằng chứng chỉ chính xác, tức là chứng chỉ tương ứng với vân tay của chứng chỉ SHA1 bạn đã nhập vào Bảng điều khiển dành cho nhà phát triển trong quá trình thiết lập.

Tiếp theo, nhấp vào mục trong trình đơn 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ã 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ừ Bảng điều khiển dành cho nhà phát triển trên Google Play chứa mã tài nguyên cũng như mã ứng dụng cho Android.

Bạn có thể tìm thấy dữ liệu này trong Bảng điều khiển dành cho nhà phát triển trên Google Play bằng cách nhấp vào mục "Tải 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 Bảng điều khiển dành cho nhà phát triển trên Google Play, đồng thời nhập mã ứng dụng 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 Máy tính của tôi, tiếp theo nhấp vào Thuộc tính, sau đó nhấp vào chuyển đến Thuộc tính hệ thống nâng cao (hoặc Thuộc tính hệ thống, rồi nhấp vào thẻ Nâng cao), sau cùng nhấp vào Môi trường Biến. Trên Windows 8, hãy nhấn Phím Windows + W và tìm các biến môi trường. Để biết thêm thông tin chi tiết, vui lòng tham khảo tài liệu dành cho phiên bản Windows của bạn.

Chạy dự án

Nếu bạn đang làm việc với mẫu Smoketest, bạn sẽ có thể xây dựng và chạy dự án từ đâ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 Tệp > Cài đặt bản dựng, chọn nền tảng Android, sau đó chọn Chuyển sang nền tảng, rồi Tạo và chạy.

Chọn một nền tả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 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 hoạt động 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 muốn giữ cho việc triển khai mặc định có thể truy cập được (chẳng hạn như sử dụng chúng để 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. Không được 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ì không được gọi Social.Xyz. Thay vào đó, hãy gọi PlayGamesPlatform.Instance.Xyz
  3. Không sử dụng Social.Active khi tương tác với Google Play Games. Thay vào đó, hãy sử 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 hai hoặc nhiều nền tả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 kết nối các Dịch vụ trò chơi khi trò chơi của bạn mở. Sau khi kết nối thành công, người chơi sẽ thấy một cửa sổ bật lên và trò chơi của bạn đã sẵn sàng bắt đầu sử dụng trình bổ trợ Games cho Unity.

Trong phương thức của tập lệnh, hãy chờ nhận kết quả của lần đăng nhập tự động, 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 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ã này cung cấp cho bạn các lý do lỗi khác nhau nhằm giúp bạn hiểu rõ hơn về lỗi đăng nhập.

Nếu bạn muốn sử dụng nền tảng mạng xã hội của Unity, bạn có thể sử dụng khối mã bên dưới.

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

Bạn sẽ không thể thực hiện bất kỳ lệnh gọi API trò chơi nào (như mở khoá thành tích, điểm số bài đăng, v.v.) cho đến khi nhận được giá trị trả về thành công từ Trình xác thực, vì vậy, bạn nên đặt một màn hình chờ cho đến khi lệnh gọi lại được thực hiện, để đảm bảo người dùng không thể bắt đầu chơi trò chơi cho đến khi quá trình xác thực 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