ข้ามไปที่เนื้อหา

ส่วนเสริม

นำเข้ารายชื่อเพื่อน Facebook

วิธีการ getProviderFriendsList() จะให้ PlayerID ของเพื่อน Facebook ของผู้ใช้ในเกมเดียวกัน ผู้ที่เล่นโดยไม่ซิงค์กับ Facebook จะไม่อยู่ในรายชื่อเพื่อน และผู้ที่เคยซิงค์ก่อนหน้านี้จะคืนค่า -1 เป็น PlayerID

Warning

Facebook ได้ปรับปรุงนโยบายที่อธิบายรายการการอนุญาตการเข้าถึงพื้นฐานต่อ Platform API ในเดือนพฤษภาคม 2018 เพื่อใช้ Facebook /user/friends API ตั้งแต่นี้ไป คุณต้องมีการอนุญาต user_friends
ตรวจสอบแนวทางสำหรับการตรวจสอบแอป Facebook

API Reference: hive.AuthV4.getProviderFriendsList

using hive;    

    AuthV4.ProviderType providerType = AuthV4.ProviderType.FACEBOOK;    

    AuthV4.getProviderFriendsList (providerType, (ResultAPI result, AuthV4.ProviderType providerType, Dictionary<String, Int64> providerUserIdList) => {    
         if (!result.isSuccess()) {    
             return;    
         }    

         if (providerUserIdList != null) {    
             foreach (KeyValuePair<String, Int64> providerUserId in providerUserIdList ) {    
                 // providerUserId: providerUserId.Key    
                 // playerId: providerUserId.Value    
             }    
         }    
});
#include "HiveAuthV4.h"

EHiveProviderType TargetProviderType = EHiveProviderType::FACEBOOK;
FHiveAuthV4::GetProviderFriendsList(TargetProviderType,
                                                                        FHiveAuthV4OnGetProviderFriendsListDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHiveProviderType& ProviderType, const ProviderFriendsMap& ProviderUserIdList) {
        // (alias) using ProviderFriendsMap = TMap<FString, int64>;
        if (!Result.IsSuccess()) {
                return;
        }

        for (const auto& ProviderUserIdEntry : ProviderUserIdList) {
                // ProviderUserId: ProviderUserIdEntry.Key;
                // Player Id: ProviderUserIdEntry.Value;
        }

}));

API Reference: AuthV4::getProviderFriendsList

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    ProviderType providerType = ProviderType::FACEBOOK;    

    AuthV4::getProviderFriendsList (providerType, [=](ResultAPI const & result, ProviderType providerType, map<string,PlayerID> providerUserIdList) {    
         if (!result.isSuccess()) {    
             return;    
         }    

         if (providerUserIdList != null) {    
             for(auto i = providerUserIdList.begin() ; i != providerUserIdList.end(); i++)    
             {    
                 // providerUserId: ( i->first).c_str()    
                 // playerId: i->second    
             }    
         }    
});

API Reference: com.hive.AuthV4.getProviderFriendsList

import com.hive.AuthV4    
    import com.hive.ResultAPI    

    val providerType = AuthV4.ProviderType.FACEBOOK    

    AuthV4.getProviderFriendsList(providerType, object : AuthV4.AuthV4ProviderFriendsListener {    
         override fun onGetProviderFriendsList(result: ResultAPI, providerType: AuthV4.ProviderType, providerUserIdList: Map<String, Long>?) {    
             if (!result.isSuccess) {    
                 return    
             }    

             providerUserIdList?.forEach {    
                 // providerUserId: it.key    
                 // playerId: it.value    
             }    
         }    
})

API Reference: com.hive.AuthV4.getProviderFriendsList

import com.hive.AuthV4;    
    import com.hive.ResultAPI;    

    AuthV4.ProviderType type = AuthV4.ProviderType.FACEBOOK;    

    AuthV4.INSTANCE.getProviderFriendsList(type, (result, providerType, providerUserIdList) -> {    
         if (!result.isSuccess()) {    
             return;    
         }    

         if (providerUserIdList != null) {    
             for (Map.Entry<String, Long> entry : providerUserIdList.entrySet()) {    
                 // providerUserId: entry.getKey();    
                 // playerId: entry.getValue();    
             }    
         }    
});

API Reference: AuthV4Interface.getProviderFriendsList

import HIVEService    

    AuthV4Interface.getProviderFriendsList(.Facebook) { result, retProviderType, providerUserIdList in    
         if !result.isSuccess() {    
             return    
         }    

         if let providerUserIdList = providerUserIdList {    
             for (key in providerUserIdList.keys) {    
                 // providerUserId: key    
                 // playerId: providerUserIdList[key]    
             }    
         }    
}

API Reference: HIVEAuthV4:getProviderFriendsList

#import <HIVEService/HIVEService-Swift.h>    

    [HIVEAuthV4 getProviderFriendsList: HIVEProviderTypeFACEBOOK handler: ^(HIVEResultAPI *result, HIVEProviderType retProviderType, NSDictionary<NSString *,NSNumber *> *providerUserIdList) {    
         if (!result.isSuccess()) {    
             return;    
         }    

         if (providerUserIdList != nil) {    
             for (NSString *key in providerUserIdList) {    
                 // providerUserId: key    
                 // playerId: [[providerUserIdList objectForKey:key] longlongValue];    
             }    
         }    
}];

ตอบสนองต่อ COPPA

พระราชบัญญัติคุ้มครองความเป็นส่วนตัวของเด็กทางออนไลน์ (COPPA) เป็นกฎหมายของสหรัฐอเมริกาที่มีจุดมุ่งหมายเพื่อปกป้องความเป็นส่วนตัวของเด็กที่มีอายุต่ำกว่า 13 ปีทางออนไลน์ เพื่อตอบสนองต่อ COPPA แพลตฟอร์ม Hive ได้ปล่อย Hive SDK v4.10.0 ซึ่งรวมถึง API getAgeGateU13() เพื่อสอบถามว่าผู้ใช้มีอายุต่ำกว่า 13 ปีหรือไม่ API จะส่งคืน true หากอายุของผู้เล่นต่ำกว่า 13 ปี

ตัวอย่างโค้ด

API Reference: AuthV4.getAgeGateU13

using hive;    

Boolean ageGateU13 = AuthV4.getAgeGateU13();
#include "HiveAuthV4.h"

bool bAgeGateU13 = FHiveAuthV4::GetAgeGateU13();

API Reference: AuthV4 ::getAgeGateU13

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

bool ageGateU13 = AuthV4::getAgeGateU13();

API Reference: AuthV4.getAgeGateU13

import com.hive.AuthV4    

val ageGateU13 = AuthV4.getAgeGateU13()

API Reference: AuthV4.INSTANCE.getAgeGateU13

import com.hive.AuthV4;    

boolean ageGateU13 = AuthV4.INSTANCE.getAgeGateU13();

API Reference: AuthV4Interface.getAgeGateU13

import HIVEService    

Bool ageGateU13 = AuthV4Interface.getAgeGateU13()

API Reference: HIVEAuthV4 getAgeGateU13

#import <HIVEService/HIVEService-Swift.h>    

BOOL ageGateU13 = [HIVEAuthV4 getAgeGateU13];

การเปลี่ยนแปลง

หาก ageGateU13() คืนค่า true จะมีการดำเนินการดังต่อไปนี้

  • iOS
    • ไม่แสดงป๊อปอัพขอความยินยอมเมื่อเรียกใช้ AuthV4.setup() หรือ Auth.initialize().
    • Push API ยังไม่ได้รับการ implement.
  • Android
    • เกมเพิ่มเติม ปุ่มไม่แสดงเมื่อแสดงป๊อปอัพออก.
    • ไม่สามารถรับ Remote Push ได้ และ Push API ยังไม่ได้รับการ implement.

การตรวจสอบข้อตกลงการให้บริการสำหรับผู้ใช้ที่อายุต่ำกว่า 16 ปีในประเทศที่ใช้ GDPR

เริ่มต้นจาก Hive SDK v4 24.2.0, คุณสามารถกำหนดได้ว่าผู้ใช้ที่อายุต่ำกว่า 16 ปีได้ตกลงตามข้อกำหนดในประเทศที่ได้รับผลกระทบจาก GDPR (กฎระเบียบการคุ้มครองข้อมูลทั่วไป) โดยใช้วิธี Configuration.getAgeGateU16Agree() หากค่าที่ส่งกลับเป็น true หมายความว่าผู้ใช้ที่อายุต่ำกว่า 16 ปีได้ตกลงตามข้อกำหนด; หากเป็น false หมายความว่าพวกเขาไม่ได้ตกลง เมื่อใช้ไลบรารีของบุคคลที่สาม หากคุณต้องการจำกัดฟีเจอร์ของแอปตามว่าผู้ใช้มีอายุต่ำกว่า 16 ปีหรือไม่ คุณสามารถใช้วิธี Configuration.getAgeGateU16Agree() ได้

using hive;

Boolean ageGateU16Agree = Configuration.getAgeGateU16Agree();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

bool ageGateU16Agree = Configuration::getAgeGateU16Agree();
import com.hive.Configuration

val ageGateU16Agree = Configuration.ageGateU16Agree()
import com.hive.Configuration;

boolean ageGateU16Agree = Configuration.INSTANCE.getAgeGateU16Agree();
import HIVEService

var ageGateU16Agree: Bool = ConfigurationInterface.getAgeGateU16Agree()
#import <HIVEService/HIVEService-Swift.h>

BOOL ageGateU16 = [HIVEConfiguration getAgeGateU16Agree];

เริ่มต้นจาก Hive SDK v4 24.3.0 หากแอปใช้เงื่อนไขการยืนยันความยินยอมจากผู้ปกครองตามกฎหมาย คุณสามารถเรียกดูว่า ผู้ใช้แอปได้รับความยินยอมจากผู้ปกครองตามกฎหมายหรือไม่ โดยการเรียกใช้เมธอด Configuration.getLegalGuardianConsentAgree() หากค่าคือ true นั่นหมายความว่ามีการให้ความยินยอมแล้ว

using hive;    

Boolean legalGuardianConsentAgree = Configuration.getLegalGuardianConsentAgree();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;    

bool ageGateU16Agree = Configuration::getLegalGuardianConsentAgree();
import com.hive.Configuration    

val legalGuardianConsentAgree = Configuration.legalGuardianConsentAgree()
import com.hive.Configuration;    

boolean legalGuardianConsentAgree = Configuration.INSTANCE.getLegalGuardianConsentAgree();
import HIVEService    

var legalGuardianConsentAgree: Bool = ConfigurationInterface.getLegalGuardianConsentAgree()
#import <HIVEService/HIVEService-Swift.h>    

BOOL legalGuardianConsentAgree = [HIVEConfiguration getLegalGuardianConsentAgree];

ขออนุญาต OS อีกครั้ง

รายการสิทธิ์การเข้าถึงที่จำเป็นสำหรับการเล่นเกมจะถูกจัดระเบียบในไฟล์ AndroidManifest.xml ลองส่งสิทธิ์บางอย่างเป็นรายการสตริงของ API ที่เกี่ยวข้องและใช้มัน คุณสามารถตรวจสอบได้ว่าผู้ใช้เลือกเข้าหรือออกจากสิทธิ์เฉพาะ หากสิทธิ์ อันตราย บางอย่างถูกปฏิเสธ ให้แน่ใจว่าแสดงป๊อปอัปที่ขอการเข้าถึง OS อีกครั้ง สิทธิ์อื่น ๆ จะถูกเลือกเข้าหรือออกโดยอัตโนมัติตามการตั้งค่าบนอุปกรณ์ของผู้ใช้ หากคุณพิมพ์สิทธิ์หรือคำที่ผิด ระบบจะถือว่าสิทธิ์ไม่ได้ประกาศในไฟล์ AndroidManifest.xml และไม่อนุญาตให้เข้าถึงสิทธิ์เหล่านั้น

Android 6.0 (ระดับ API 23) รองรับฟีเจอร์นี้ หากระบบปฏิบัติการเป็น iOS หรือระดับ API ของ Android ต่ำกว่า 23 จะส่ง ResultAPI ว่าไม่รองรับ

Note

ฟีเจอร์นี้ใช้ได้เฉพาะบน Android เท่านั้น.

ตัวอย่างโค้ด

API Reference: PlatformHelper .requestUserPermissions

String[] requestArray = {"android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.BLUETOOTH", "android.permission.READ_CONTACTS"};    
    List<String> requests = new List<String>(requestArray);    

    PlatformHelper.requestUserPermissions( requests, (ResultAPI result, String[] granted, String[] denied) => {    

         if (result.code == ResultAPI.Code.PlatformHelperOSNotSupported) {    
            //Android only    
         }    

         if (result.code == ResultAPI.Code.PlatformHelperOSVersionNotSupported) {    
             //Android OS version not supported.    
         }    

         if (granted != null && granted.Length > 0) {    
             foreach (String name in granted) {    
                 // List of permissions accepted among requests    
             }    
         }    

         if (denied != null && denied.Length > 0) {    
             foreach (String name denied) {    
                 // List of permissions denied among requests    
             }    
         }    
});
#include "HivePlatformHelper.h"

TArray<FString> Requests;
Requests.Add(TEXT("android.permission.WRITE_EXTERNAL_STORAGE"));
Requests.Add(TEXT("android.permission.READ_CONTACTS"));

FHivePlatformHelper::RequestUserPermissions(Requests, FHivePlatformHelperOnUserPermissionsDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FString>& GrantedRequests, const TArray<FString>& DeniedRequests) {

        switch(Result.Code) {
                case FHiveResultAPI::ECode::Success: {
                        if (GrantedRequests.Num() > 0) {
                                // รายการสิทธิ์ที่ได้รับการอนุมัติจากคำขอ
                        }
                        if (DeniedRequests.Num() > 0) {
                                // รายการสิทธิ์ที่ถูกปฏิเสธจากคำขอ
                        }
                }
                        break;
                case FHiveResultAPI::ECode::PlatformHelperOSVersionNotSupported:
                        // เวอร์ชันระบบปฏิบัติการ Android ไม่รองรับ
                        break;
                default:
                        // ข้อยกเว้นอื่น ๆ
                        break;
        }
}));

API Reference: PlatformHelper ::requestUserPermissions

string requestArray[] = {"android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.BLUETOOTH", "android.permission.READ_CONTACTS"};    
    vector<string> requests(begin(requestArray), end(requestArray));    

    PlatformHelper::requestUserPermissions(requests, [=](ResultAPI const & result, vector<string> const & granted, vector<string> const & denied) {    

         if (result.code == hive::ResultAPI::PlatformHelperOSNotSupported) {    
             //Android only    
         }    

         if (result.code == hive::ResultAPI::PlatformHelperOSVersionNotSupported) {    
             //Android OS version not supported.    
         }    

         if (!granted.empty()) {    
             for (string name : granted) {    
                 // List of permissions accepted among requests    
             }    
         }    

         if (!denied.empty()) {    
             for (string name : denied) {    
                 // List of permissions denied among requests    
             }    
         }    
});

API Reference: PlatformHelper.requestUserPermissions

import com.hive.PlatformHelper    
    import com.hive.ResultAPI    

    val requests = arrayListOf(    
         "android.permission.WRITE_EXTERNAL_STORAGE",    
         "android.permission.BLUETOOTH",    
         "android.permission.READ_CONTACTS"    
    )    

    PlatformHelper.requestUserPermissions(requests, object : PlatformHelper.RequestUserPermissionsListener {    
         override fun onRequestUserPermissions(result: ResultAPI, granted: List<String>, denied: List<String>) {    
             when (result.code) {    
                 ResultAPI.Code.Success -> {    
                     if (granted.isNotEmpty()) {    
                         // รายการของสิทธิ์ที่ได้รับการอนุมัติจากคำขอ    
                     }    
                     if (denied.isNotEmpty()) {    
                         // รายการของสิทธิ์ที่ถูกปฏิเสธจากคำขอ    
                     }    
                 }    
                 ResultAPI.Code.PlatformHelperOSVersionNotSupported -> {    
                     // เวอร์ชัน Android OS ไม่รองรับ    
                 }    
                 else -> {    
                     // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 }    
             }    
         }    
})

API Reference: PlatformHelper .INSTANCE.requestUserPermissions

import com.hive.PlatformHelper;    
    import com.hive.ResultAPI;    

    List<String> requests = Arrays.asList(    
             "android.permission.WRITE_EXTERNAL_STORAGE",    
             "android.permission.BLUETOOTH",    
             "android.permission.READ_CONTACTS");    

    PlatformHelper.INSTANCE.requestUserPermissions(requests, (result, granted, denied) -> {    
         switch (result.getCode()) {    
             case Success:    
                 if (!granted.isEmpty()) {    
                     // รายการของสิทธิ์ที่ได้รับการอนุมัติจากคำขอ    
                 }    
                 if (!denied.isEmpty()) {    
                     // รายการของสิทธิ์ที่ถูกปฏิเสธจากคำขอ    
                 }    
                 break;    
             case PlatformHelperOSVersionNotSupported:    
                 // เวอร์ชัน Android OS ไม่รองรับ    
                 break;    
             default:    
                 // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 break;    
         }    
});

ใช้บริการจัดการอุปกรณ์

บริการจัดการอุปกรณ์ จะถูกดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบตามการตั้งค่าใน Hive Console หลังจากเข้าสู่ระบบ เกมจะเรียกใช้เมธอด showDeviceManagement() ของคลาส AuthV4 และแสดงรายการการจัดการอุปกรณ์ให้กับผู้ใช้
เมื่อการเข้าสู่ระบบถูกยกเลิกเนื่องจากการตรวจสอบอุปกรณ์ล้มเหลว เกมที่มีบริการจัดการอุปกรณ์ควรจัดการกับรหัส AuthV4NotRegisteredDevice ของ Result API เพื่อพยายามเข้าสู่ระบบแบบเงียบอีกครั้งหรือดำเนินการออกจากระบบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ บริการจัดการอุปกรณ์ โปรดดูที่คู่มือการใช้งาน: บทนำสู่บริการจัดการอุปกรณ์.

API Reference: AuthV4.showDeviceManagement

using hive;    

    AuthV4.showDeviceManagement((ResultAPI result) => {    
         if (result.isSuccess()) {    
             // ปิดหลังจากแสดง UI การจัดการอุปกรณ์    
         }    
}
#include "HiveAuthV4.h"

FHiveAuthV4::ShowDeviceManagement(FHiveAuthV4OnShowDeviceManagementDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // ปิดหลังจากแสดง UI การจัดการอุปกรณ์ 
        }
}));

API Reference: AuthV4 ::showDeviceManagement

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    AuthV4::showDeviceManagement([=](ResultAPI const & result) {    
         if (result.isSuccess()) {    
             // ปิดหลังจากแสดง UI การจัดการอุปกรณ์    
         }    
});

API Reference: AuthV4.showDeviceManagement

import com.hive.AuthV4    
    import com.hive.ResultAPI    

    AuthV4.showDeviceManagement(object : AuthV4.AuthV4ShowDeviceManagementListener {    
         override fun onAuthV4ShowDeviceManagement(result: ResultAPI) {    
             if (result.isSuccess) {    
                 // ปิดหลังจากเปิดเผย UI การจัดการอุปกรณ์    
             }    
         }    
})

API Reference: AuthV4.INSTANCE .showDeviceManagement

import com.hive.AuthV4;    
    import com.hive.ResultAPI;    

    AuthV4.INSTANCE.showDeviceManagement(result -> {    
         if (result.isSuccess()) {    
             // ปิดหลังจากแสดง UI การจัดการอุปกรณ์    
         }    
});

API Reference: AuthV4Interface .showDeviceManagement

import HIVEService    

    AuthV4Interface.showDeviceManagement() { result in    
         if result.isSuccess() {    
             // ปิดหลังจากเปิดเผย UI การจัดการอุปกรณ์    
         }    
}

API Reference: HIVEAuthV4 showDeviceManagement

#import <HIVEService/HIVEService-Swift.h>    

    [HIVEAuthV4 showDeviceManagement: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // ปิดหลังจากแสดง UI การจัดการอุปกรณ์    
         }    
}];

ความสำเร็จและกระดานผู้นำเกม Google Play

ในการทำให้เกมของคุณได้รับการนำเสนอใน Google Play Games คุณต้องดำเนินการฟังก์ชันความสำเร็จและกระดานผู้นำของ Google Play Games

หากผู้ใช้ลงชื่อเข้าใช้เกมของคุณด้วยบัญชี Google ในหมู่ IdPs มันจะลงชื่อเข้าใช้บริการ Play Games (PGS) โดยอัตโนมัติ ดังนั้นความสำเร็จและกระดานผู้นำจึงสามารถใช้งานได้ ในกรณีที่ผู้ใช้ลงชื่อออกจากหน้าจอการตั้งค่าของ PGS บัญชีผู้เล่นจะถูกลงชื่อออกเช่นเดียวกับกระบวนการเมื่อปุ่มลงชื่อออกในเกมถูกแตะ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันของ PGS โปรดดูที่ คู่มือบริการ Google Play Games.

Note

ในกรณีที่มีการใช้งานคลาส AuthV4Helper

  • หากผู้ใช้ยกเลิกการเข้าสู่ระบบโดยอัตโนมัติไปยัง PGS ขณะโหลดเกม ระบบจะจดจำสถานะและจะไม่พยายามเข้าสู่ระบบโดยอัตโนมัติอีกครั้ง แม้ว่าการเข้าสู่ระบบอัตโนมัติจะสามารถใช้ได้ในขณะที่เซสชันของผู้เล่นยังถูกต้อง ระบบจะจดจำสถานะที่ถูกปฏิเสธ

  • หากผู้ใช้ไม่ได้เข้าสู่ระบบ PGS ผลลัพธ์ของการบรรลุเป้าหมายจะไม่ถูกส่งไปยัง PGS.

เนื้อหานี้เป็นไปตามแนวทางของ Google Play Games Services.

ส่ง playerID

หากคุณต้องการขอ PlayerID จาก Google Play Games ให้ทำการ implement วิธีการ getGooglePlayerId() ในคลาส ProviderGoogle โดยการ implement วิธีการนี้จะส่ง PlayerID พร้อมกับ AuthCode ซึ่งใช้ในการตรวจสอบคีย์เซสชัน

ต่อไปนี้คือตัวอย่างโค้ด

เอกสารอ้างอิง API: hive.ProviderGoogle.getGooglePlayerId

// ขอ playerID จาก Google Play Games
ProviderGoogle.getGooglePlyaerId((ResultAPI result, String googlePlayerId, String authCode)=>{
    if(result.isSuccess()){
        // สำเร็จในการเรียก API
    }
});

เอกสารอ้างอิง API: ProviderGoogle::getGooglePlayerId

// ขอ playerID จาก Google Play Games
ProviderGoogle::getGooglePlayerId([=](ResultAPI const &result, std::string const &googlePlayerId, std::string const &authCode) {
    if (result.isSuccess())
    {
        // สำเร็จในการเรียก API
    }
});
#include "HiveProviderGoogle.h"

FHiveProviderGoogle::GetGooglePlayerId(FHiveProviderGoogleOnGooglePlayerIdDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FString& GooglePlayerId, const FString& AuthCode) {
        if (Result.IsSuccess()) {
                // Success in API call.
        }
}));

เอกสารอ้างอิง API: com.hive.ProviderGoogle.getGooglePlayerId

// ขอ playerID จาก Google Play Games
ProviderGoogle.getGooglePlayerId(new ProviderGoogle.GooglePlayerIdListener() {
    @Override
    public void onPlayerIdResult(ResultAPI resultAPI, String googlePlayerId, String authCode) {
        if(resultAPI.isSuccess()){
            // สำเร็จในการเรียก API
        }
    }
});

ความสำเร็จ

Implement ProviderGoogle class to use Achievement function of Google Play Games through Hive SDK.

ขอให้เปิดเผยความสำเร็จที่ซ่อนอยู่

เพื่อเปิดเผยความสำเร็จที่ซ่อนอยู่ให้กับผู้เล่นที่ลงชื่อเข้าใช้ในขณะนี้ ให้เรียกใช้เมธอด achievementsReveal() ซึ่งจะไม่มีผลใดๆ แต่จะเปิดเผย 0% ของความสำเร็จ ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive.ProviderGoogle.achievementsReveal

using hive;    
    //Achievement ID    
    String achievementId = "abcdef123456";    
    ProviderGoogle.achievementsReveal(achievementId, (ResultAPI result) => {    
      if (result.isSuccess()) {    
      // call successful    
      }    
});
#include "HiveProviderGoogle.h"

// รหัสความสำเร็จ 
FString AchievementId = TEXT("abcdef123456");
FHiveProviderGoogle::AchievementsReveal(AchievementId, FHiveProviderGoogleOnAchievementsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // การเรียก API สำเร็จ 
        }
}));

API Reference: ProviderGoogle::achievementsReveal

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    //Achievement ID    
    string achievementId = "abcdef123456";    
    ProviderGoogle::achievementsReveal(achievementId, [=](ResultAPI const & result) {    
       if(result.isSuccess()){    
          // call successful    
        }    
});

API Reference: ProviderGoogle.achievementsReveal

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    //Achievement ID    
    val achievementId = "abcdef123456"    
    ProviderGoogle.achievementsReveal(achievementId, object : ProviderGoogle.GoogleAchievementsListener {    
         override fun onAchievementsResult(resultAPI: ResultAPI) {    
             if (resultAPI.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: ProviderGoogle .INSTANCE.achievementsReveal

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    //Achievement ID    
    String achievementId = "abcdef123456";    

    ProviderGoogle.INSTANCE.achievementsReveal(achievementId, resultAPI -> {    
         if (resultAPI.isSuccess()) {    
             // call successful    
         }    
});

ขอปลดล็อกความสำเร็จ

ในการปลดล็อกความสำเร็จให้กับผู้เล่นที่ลงชื่อเข้าใช้ในขณะนี้ ให้เรียกใช้วิธี achievementsUnlock() วิธีนี้จะทำเครื่องหมายความสำเร็จ 100% โดยไม่คำนึงถึงสถานะของมัน; ซ่อนอยู่หรือไม่ ต่อไปนี้คือตัวอย่างโค้ด

API Reference: ProviderGoogle.achievementsUnlock

using hive;    
    //Achievement ID    
    String achievementId = "abcdef123456";    
    ProviderGoogle.achievementsUnlock(achievementId, (ResultAPI result) => {    
    if (result.isSuccess()) {    
    // call successful    
    }    
});

API Reference: ProviderGoogle::achievementsUnlock

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    //Achievement ID    
    string achievementId = "abcdef123456";    
    ProviderGoogle::achievementsUnlock(achievementId, [=](ResultAPI const & result) {    
    if(result.isSuccess()){    
           // call successful    
        }    
});

API Reference: ProviderGoogle.achievementsUnlock

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    //Achievement ID    
    val achievementId = "abcdef123456"    
    ProviderGoogle.achievementsUnlock(achievementId, object : ProviderGoogle.GoogleAchievementsListener {    
         override fun onAchievementsResult(resultAPI: ResultAPI) {    
             if (resultAPI.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: ProviderGoogle .INSTANCE.achievementsUnlock

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    //รหัสความสำเร็จ    
    String achievementId = "abcdef123456";    

    ProviderGoogle.INSTANCE.achievementsUnlock(achievementId, resultAPI -> {    
         if (resultAPI.isSuccess()) {    
             // call successful    
         }    
});

คำขอเพื่อเพิ่มความสำเร็จ

ในการใช้ฟังก์ชันการร้องขอเพื่อเพิ่มความสำเร็จ ให้ตั้งค่าค่าความสำเร็จเป็นพารามิเตอร์ จากนั้นเรียกใช้เมธอด achievementsIncrement() ค่าความสำเร็จคือผลรวมของค่าที่ตั้งค่าเมื่อเรียกใช้ API ที่เกี่ยวข้อง และความสำเร็จจะถูกทำให้สำเร็จโดยอัตโนมัติเมื่อผลรวมทั้งหมดถึงค่าสูงสุด

ต่อไปนี้คือตัวอย่างโค้ด.

เอกสารอ้างอิง API: hive.ProviderGoogle.achievementsIncrement

using hive;    
    //Achievement ID    
    String achievementId = "abcdef123456";    
    // Achievement numbers    
    int value = 1;    
    ProviderGoogle.achievementsIncrement(achievementId, value, (ResultAPI result) => {    
      if (result.isSuccess()){    
      // call successful    
      }    
});
#include "HiveProviderGoogle.h"

//รหัสความสำเร็จ 
FString AchievementId = TEXT("abcdef123456");
// จำนวนความสำเร็จ
int32 Value = 1;

FHiveProviderGoogle::AchievementsIncrement(AchievementId, Value, FHiveProviderGoogleOnAchievementsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // call successful
        }
}));

API Reference: ProviderGoogle::achievementsIncrement

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    //Achievement ID    
    string achievementId = "abcdef123456";    
    // Achievement numbers    
    int value = 1;    
    ProviderGoogle::achievementsIncrement(achievementId, value, [=](ResultAPI const & result) {    
      if(result.isSuccess()){    
      // call successful    
      }    
});

API Reference: ProviderGoogle.achievementsIncrement

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    //Achievement ID    
    val achievementId = "abcdef123456"    
    // Achievement numbers    
    val value = 1    
    ProviderGoogle.achievementsIncrement(achievementId, value, object : ProviderGoogle.GoogleAchievementsListener {    
         override fun onAchievementsResult(resultAPI: ResultAPI) {    
             if (resultAPI.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: ProviderGoogle .INSTANCE.achievementsIncrement

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    //รหัสความสำเร็จ    
    String achievementId = "abcdef123456";    

    // Achievement numbers    
    int value = 1;    

    ProviderGoogle.INSTANCE.achievementsIncrement(achievementId, value, resultAPI -> {    
         if (resultAPI.isSuccess()) {    
             // call successful    
         }    
});

ขอให้แสดงรายการความสำเร็จ (Helper)

Note

SDK 4.7.0 มี Helper ซึ่งช่วยเปรียบเทียบบัญชีที่ลงชื่อเข้าใช้ในอุปกรณ์ผู้ใช้และบัญชีที่ซิงค์ด้วย PlayerID ได้อย่างง่ายดาย หากสองบัญชีไม่เหมือนกัน โปรดดูที่หน้า IdP Sync เพื่อจัดการกับสถานการณ์นี้.

เรียกใช้วิธีการ showAchievements() เพื่อขอรายการความสำเร็จจาก Google Play Games.

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: AuthV4.Helper.showAchievements

using hive;    
    AuthV4.Helper.showAchievements ((ResultAPI result, AuthV4.PlayerInfo playerInfo) => {    
      switch (result.code) {    
        case ResultAPI.Code.Success:    
          // ส่งความสำเร็จพร้อมการระบุความสำเร็จ    
          break;    
        case ResultAPI.Code.AuthV4ConflictPlayer:    
          // ข้อขัดแย้งของบัญชี    
          break;    
        case ResultAPI.Code.AuthV4GoogleLogout:    
          //TODO:    
          // หลังจากออกจาก Google Play ให้ออกจากเกม    
          // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
          break;    
        default:    
          // สถานการณ์ข้อยกเว้นอื่น ๆ    
          break;    
      }    
});
#include "HiveAuthV4.h"

FHiveAuthV4::Helper::ShowAchievements(FHiveAuthV4HelperDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TOptional<FHivePlayerInfo>& PlayerInfo) {
        switch (Result.Code) {
                case FHiveResultAPI::ECode::Success:
                        // ส่งมอบความสำเร็จด้วยการระบุความสำเร็จ
                        break;
                case FHiveResultAPI::ECode::AuthV4ConflictPlayer:
                        // ขัดแย้งบัญชี
                        break;
                case FHiveResultAPI::ECode::AuthV4GoogleLogout:
                        // TODO:
                        // หลังจากออกจาก Google Play ให้ออกจากเกม
                        // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา
                        break;
                default:
                        // สถานการณ์ข้อยกเว้นอื่น ๆ
                        break;
        }
}));

API Reference: AuthV4 ::Helper::showAchievements

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    AuthV4::Helper::showAchievements([=](ResultAPI const & result, shared_ptr playerInfo) {    
      switch (result.code) {    
        case ResultAPI::Success:    
          // Deliver Success with achievement indication    
          break;    
        case ResultAPI::AuthV4ConflictPlayer:    
          // account conflict    
          break;    
        case ResultAPI::AuthV4GoogleLogout:    
          //TODO:    
          // After logging out of Google Play, log out of the game    
          // Relaunching the game must be handled by the development studio    
          break;    
        default:    
          // other exception situations    
          break;    
      }    
});

API Reference: AuthV4.Helper.showAchievements

import com.hive.AuthV4    
    import com.hive.ResultAPI    
    AuthV4.Helper.showAchievements(object : AuthV4.Helper.AuthV4HelperListener {    
         override fun onAuthV4Helper(result: ResultAPI, playerInfo: AuthV4.PlayerInfo?) {    
             when (result.code) {    
                 ResultAPI.Code.Success -> {    
                     // ส่งมอบความสำเร็จพร้อมการระบุความสำเร็จ    
                 }    
                 ResultAPI.Code.AuthV4ConflictPlayer -> {    
                     // ความขัดแย้งของบัญชี    
                 }    
                 ResultAPI.Code.AuthV4GoogleLogout -> {    
                     //TODO:    
                     // หลังจากออกจาก Google Play ให้ออกจากเกม    
                     // การเริ่มเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
                 }    
                 else -> {    
                     // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 }    
             }    
         }    
})

API Reference: AuthV4.Helper.INSTANCE.showAchievements

import com.hive.AuthV4;    
    import com.hive.ResultAPI;    

    AuthV4.Helper.INSTANCE.showAchievements((result, playerInfo) -> {    
         switch (result.getCode()) {    
             case Success:    
                 // ส่งมอบความสำเร็จพร้อมการระบุความสำเร็จ    
                 break;    
             case AuthV4ConflictPlayer:    
                 // ข้อขัดแย้งของบัญชี    
                 break;    
             case AuthV4GoogleLogout:    
                 //TODO:    
                 // หลังจากออกจาก Google Play ให้ออกจากเกม    
                 // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
                 break;    
             default:    
                 // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 break;    
         }    
});
Warning

หากผู้ใช้ลงชื่อออกจากหน้าการตั้งค่าของ Play Games Services บัญชีผู้เล่นจะถูกลงชื่อออกและรหัสข้อผิดพลาดที่ชื่อว่า ResultAPI.Code.AuthV4GoogleLogout จะถูกส่งเป็นการเรียกกลับ เมื่อการลงชื่อออกเสร็จสิ้น ป๊อปอัปการออกจากระบบจะแสดงขึ้นและการแสดงผลจะเปลี่ยนเป็นชื่อเกม。


คำขอเพื่อแสดงรายการความสำเร็จ (Auth v4)

เรียกใช้เมธอด showAchievements() เพื่อขอรายการความสำเร็จจาก Google Play Games.

ต่อไปนี้คือตัวอย่างโค้ด

เอกสารอ้างอิง API: ProviderGoogle .showAchievements

using hive;    
    ProviderGoogle.showAchievements((ResultAPI result) => {    
      switch (result.code) {    
        case ResultAPI.Code.Success:    
          // Deliver Success with achievement indication    
          break;    
        case ResultAPI.Code.AuthV4GoogleLogout:    
          //TODO:    
          // After logging out of Google Play, log out of the game    
          // Relaunching the game must be handled by the development studio    
          break;    
        default:    
          // other exception situations    
          break;    
      }    
});
#include "HiveProviderGoogle.h"

FHiveProviderGoogle::ShowAchievements(FHiveProviderGoogleOnLeaderboardsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
                case FHiveResultAPI::ECode::Success:
                        // แสดงความสำเร็จและส่ง Success
                        break;
                case FHiveResultAPI::ECode::AuthV4GoogleLogout:
                        // TODO:
                        // ทำการออกจากระบบเกมหลังจากออกจาก Google Play
                        // การเริ่มเกมใหม่จะต้องจัดการโดยสตูดิโอพัฒนา
                        break;
                default:
                        // สถานการณ์ข้อยกเว้นอื่น ๆ
                        break;
}));

API Reference: ProviderGoogle ::showAchievements

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    ProviderGoogle::showAchievements([=](ResultAPI const & result) {    
      switch (result.code) {    
        case ResultAPI::Success:    
          // Deliver Success with achievement indication    
          break;    
        case ResultAPI::AuthV4GoogleLogout:    
          //TODO:    
          // After logging out of Google Play, log out of the game    
          // Relaunching the game must be handled by the development studio    
          break;    
        default:    
          // other exception situations    
          break;    
      }    
});

API Reference: ProviderGoogle.showAchievements

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    ProviderGoogle.showAchievements(object : ProviderGoogle.GoogleAchievementsListener {    
         override fun onAchievementsResult(resultAPI: ResultAPI) {    
             when(resultAPI.code) {    
                 ResultAPI.Code.Success -> {    
                     // Deliver Success with achievement indication    
                 }    
                 ResultAPI.Code.AuthV4GoogleLogout -> {    
                     //TODO:    
                     // หลังจากออกจากระบบ Google Play ให้ทำการออกจากเกม    
                     // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
                 }    
                 else -> {    
                     // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 }    
             }    
         }    
})

API Reference: ProviderGoogle.INSTANCE.showAchievements

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    ProviderGoogle.INSTANCE.showAchievements(resultAPI -> {    
         switch (resultAPI.getCode()) {    
             case Success:    
                 // Deliver Success with achievement indication    
                 break;    
             case AuthV4GoogleLogout:    
                 //TODO:    
                 // After logging out of Google Play, log out of the game    
                 // Relaunching the game must be handled by the development studio    
                 break;    
             default:    
                 // other exception situations    
                 break;    
         }    
});
Warning

หากผู้ใช้ออกจากระบบจากหน้าการตั้งค่าของ Play Games Services จะมีรหัสข้อผิดพลาดชื่อ ResultAPI.Code.AuthV4GoogleLogout ถูกส่งเป็นการเรียกกลับ เมื่อส่งข้อผิดพลาดนี้แล้ว ให้แน่ใจว่าได้เขียนโค้ดเหมือนกับกระบวนการเมื่อปุ่มออกจากระบบในเกมถูกแตะ

กระดานผู้นำ

Implement ProviderGoogle class to use Leaderboard function of Google Play Games through Hive SDK.

การอัปเดตคะแนนกระดานผู้นำ

เรียกใช้เมธอด leaderboardsSubmitScore() เพื่อขอการอัปเดตคะแนนลีดเดอร์บอร์ดของ Google Play Games.

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive.ProviderGoogle.leaderboardsSubmitScore

using hive    

    // รหัสกระดานผู้นำ    
    String leaderboardId = "12345abcde";    

    // หมายเลขคะแนนในกระดานผู้นำ    
    long score = 100;    
    ProviderGoogle.leaderboardsSubmitScore(leaderboardId, score, (ResultAPI result) => {    
      if (result.isSuccess()) {    
      // การเรียก API สำเร็จ    
      }    
});
#include "HiveProviderGoogle.h"

// รหัสกระดานผู้นำ
FString LeaderboardId = TEXT("12345abcde");

// คะแนนอันดับ
int64 Score = 100;

FHiveProviderGoogle::LeaderboardsSubmitScore(LeaderboardId, Score, FHiveProviderGoogleOnLeaderboardsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call successful 
        }
}));

API Reference: ProviderGoogle::leaderboardsSubmitScore

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    // Leaderboard ID    
    string leaderboardId = "12345abcde";    

    // หมายเลขคะแนนในกระดานผู้นำ    
    long score = 100;    

    ProviderGoogle::leaderboardsSubmitScore(leaderboardId, score, [=](ResultAPI const & result) {    
       if (result.isSuccess()) {    
          // API call successful    
        }    
});

API Reference: ProviderGoogle.leaderboardsSubmitScore

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    // รหัสกระดานผู้นำ    
    val leaderboardId = "12345abcde"    
    // คะแนนกระดานผู้นำ    
    val score = 100L    
    ProviderGoogle.leaderboardsSubmitScore(leaderboardId, score, object : ProviderGoogle.GoogleLeaderboardsListener {    
         override fun onLeaderboardsResult(resultAPI: ResultAPI) {    
             if (resultAPI.isSuccess) {    
                 // การเรียก API สำเร็จ    
             }    
         }    
})

API Reference: com.hive.ProviderGoogle.leaderboardsSubmitScore

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    // รหัสกระดานผู้นำ    
    String leaderboardId = "12345abcde";    

    // หมายเลขคะแนนในกระดานผู้นำ    
    long score = 100;    

    ProviderGoogle.INSTANCE.leaderboardsSubmitScore(leaderboardId, score, resultAPI -> {    
         if (resultAPI.isSuccess()) {    
             // API call successful    
         }    
});

Request to show leaderboard list (Helper)

เรียกใช้เมธอด showLeaderboards() เพื่อขอรายชื่อกระดานผู้นำของ Google Play Games.
ต่อไปนี้คือโค้ดตัวอย่าง.

API Reference: hive.AuthV4.Helper.showLeaderboard

using hive;    
    AuthV4.Helper.showLeaderboard ((ResultAPI result, AuthV4.PlayerInfo playerInfo) => {    
       switch (result.code) {    
         case ResultAPI.Code.Success:    
           // ส่งมอบความสำเร็จพร้อมกับการแสดงกระดานคะแนน    
           break;    
         case ResultAPI.Code.AuthV4ConflictPlayer:    
           // ข้อขัดแย้งของบัญชี    
           break;    
         case ResultAPI.CodeAuthV4GoogleLogout:    
    //TODO:    
           // หลังจากออกจาก Google Play ให้ออกจากเกม    
           // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
           break;    
         default:    
           // สถานการณ์ข้อยกเว้นอื่น ๆ    
           break;    
       }    
});
#include "HiveAuthV4.h"

FHiveAuthV4::Helper::ShowLeaderboard(FHiveAuthV4HelperDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TOptional<FHivePlayerInfo>& PlayerInfo) {
                case FHiveResultAPI::ECode::Success:
                        // ส่งมอบความสำเร็จพร้อมแสดงกระดานคะแนน
                        break;
                case FHiveResultAPI::ECode::AuthV4ConflictPlayer:
                        // ข้อขัดแย้งบัญชี
                        break;
                case FHiveResultAPI::ECode::AuthV4GoogleLogout:
                        // TODO:
                        // หลังจากออกจากระบบ Google Play ให้ออกจากเกม
          // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา
                        break;
                default:
                        // สถานการณ์ข้อยกเว้นอื่น ๆ
                        break;
}));

API Reference: com.hive.AuthV4.Helper.showLeaderboard

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    AuthV4::Helper::showLeaderboard([=](ResultAPI const & result, shared_ptr playerInfo) {    
    switch (result.code) {    
           case ResultAPI::Success:    
             // Deliver Success with leaderboard display    
             break;    
           case ResultAPI::AuthV4ConflictPlayer:    
             // account conflict    
             break;    
           case ResultAPI::AuthV4GoogleLogout:    
    //TODO:    
             // After logging out of Google Play, log out of the game    
             // Relaunching the game must be handled by the development studio    
             break;    
           default:    
             break;    
         }    
});

API Reference: Helper.showLeaderboard

import com.hive.AuthV4    
    import com.hive.ResultAPI    
    AuthV4.Helper.showLeaderboard(object : AuthV4.Helper.AuthV4HelperListener {    
         override fun onAuthV4Helper(result: ResultAPI, playerInfo: AuthV4.PlayerInfo?) {    
             when (result.code) {    
                 ResultAPI.Code.Success -> {    
                     // ส่งมอบความสำเร็จพร้อมการแสดงกระดานคะแนน    
                 }    
                 ResultAPI.Code.AuthV4ConflictPlayer -> {    
                     // ข้อขัดแย้งของบัญชี    
                 }    
                 ResultAPI.Code.AuthV4GoogleLogout -> {    
                     //TODO:    
                     // หลังจากออกจากระบบ Google Play ให้ทำการออกจากเกม    
                     // การเริ่มเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
                 }    
                 else -> {    
    // สถานการณ์ข้อยกเว้นอื่น ๆ    
    }    
             }    
         }    
})

API Reference: AuthV4.Helper.INSTANCE.showLeaderboard

import com.hive.AuthV4;
import com.hive.ResultAPI;

AuthV4.Helper.INSTANCE.showLeaderboard((result, playerInfo) -> {
    switch (result.getCode()) {
        case Success:
            // Deliver Success with leaderboard display
            break;
        case AuthV4ConflictPlayer:
            // account conflict
            break;
        case AuthV4GoogleLogout:
            //TODO:
            // After logging out of Google Play, log out of the game
            // Relaunching the game must be handled by the development studio
            break;
        default:
            // other exception situations
            break;
    }
});
Warning

หากผู้ใช้ลงชื่อออกจากหน้าจอการตั้งค่าของ Play Games Services บัญชีผู้เล่นจะถูกลงชื่อออกและรหัสข้อผิดพลาดที่ชื่อว่า ResultAPI.Code.AuthV4GoogleLogout จะถูกส่งเป็นการเรียกกลับ เมื่อการลงชื่อออกเสร็จสิ้น ป๊อปอัปการออกจากระบบจะแสดงขึ้นและการแสดงผลจะเปลี่ยนเป็นชื่อเกม


ขอให้แสดงรายการอันดับ (Auth v4)

เรียกใช้เมธอด showLeaderboards() เพื่อขอรายการลีดเดอร์บอร์ดของ Google Play Games.

ต่อไปนี้คือตัวอย่างโค้ด

เอกสารอ้างอิง API: hive.ProviderGoogle.showLeaderboards

using hive;    

    ProviderGoogle.showLeaderboards(onLeaderboardsResult, (ResultAPI result) => {    
    switch (result.code) {    
         case ResultAPI.Code.Success:    
           // Deliver Success with leaderboard display    
           break;    
         case ResultAPI.CodeAuthV4GoogleLogout:    
           //TODO:    
           // After logging out of Google Play, log out of the game    
           // Relaunching the game must be handled by the development studio    
           break;    
         default:    
           // other exception situations    
           break;    
       }    
});
#include "HiveProviderGoogle.h"

FHiveProviderGoogle::ShowLeaderboard(FHiveProviderGoogleOnLeaderboardsDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
                    case FHiveResultAPI::ECode::Success:
                        // ส่งมอบความสำเร็จพร้อมการแสดงกระดานผู้นำ 
                        break;
                case FHiveResultAPI::ECode::AuthV4GoogleLogout:
                        // TODO:
                        // หลังจากออกจาก Google Play ให้ออกจากเกม    
          // การเริ่มเกมใหม่ต้องจัดการโดยสตูดิโอพัฒนา 
                        break;
                default:
                        // สถานการณ์ข้อยกเว้นอื่นๆ 
                        break; 
}));

API Reference: ProviderGoogle::showLeaderboards

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    ProviderGoogle::showLeaderboard([=](ResultAPI const & result) {    
    switch (result.code) {    
           case ResultAPI::Success:    
             // Deliver Success with leaderboard display    
             break;    
           case ResultAPI::AuthV4GoogleLogout:    
             //TODO:    
             // After logging out of Google Play, log out of the game    
             // Relaunching the game must be handled by the development studio    
             break;    
           default:    
    // other exception situations    
             break;    
         }    
});

API Reference: ProviderGoogle.showLeaderboards

import com.hive.ProviderGoogle    
    import com.hive.ResultAPI    
    ProviderGoogle.showLeaderboards(object : ProviderGoogle.GoogleLeaderboardsListener {    
         override fun onLeaderboardsResult(resultAPI: ResultAPI) {    
             when(resultAPI.code) {    
                 ResultAPI.Code.Success -> {    
                     // ส่งมอบความสำเร็จพร้อมการแสดงกระดานผู้นำ    
                 }    
                 ResultAPI.Code.AuthV4GoogleLogout -> {    
                     //TODO:    
                     // หลังจากออกจากระบบ Google Play ให้ออกจากเกม    
                     // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา    
                 }    
                 else -> {    
    // สถานการณ์ข้อยกเว้นอื่น ๆ    
    }    
             }    
         }    
})

API Reference: com.hive.ProviderGoogle.showLeaderboards

import com.hive.ProviderGoogle;    
    import com.hive.ResultAPI;    

    ProviderGoogle.INSTANCE.showLeaderboards(resultAPI -> {    
         switch (resultAPI.getCode()) {    
             case Success:    
                 // Deliver Success with leaderboard display    
                 break;    
             case AuthV4GoogleLogout:    
                 //TODO:    
                 // After logging out of Google Play, log out of the game    
                 // Relaunching the game must be handled by the development studio    
                 break;    
             default:    
                  // other exception situations    
                 break;    
         }    
});
Warning

หากผู้ใช้ลงชื่อออกจากหน้าการตั้งค่าของ Play Games Services จะมีรหัสข้อผิดพลาดชื่อ ResultAPI.Code.AuthV4GoogleLogout ถูกส่งเป็นการเรียกกลับ เมื่อส่งข้อผิดพลาดนี้แล้ว ให้แน่ใจว่าได้เขียนโค้ดเหมือนกับกระบวนการเมื่อปุ่มลงชื่อออกในเกมถูกแตะ

เกมเซ็นเตอร์ของแอปเปิล ความสำเร็จและกระดานผู้นำ

ในการให้เกมของคุณได้รับการแสดงใน Apple Game Center คุณต้องใช้ฟังก์ชันความสำเร็จและกระดานผู้นำของ Apple Game Center

ไม่ว่าจะเป็นสถานะการตรวจสอบสิทธิ์ของผู้ใช้ ฟังก์ชันทั้งสองของ Apple Game Center จะถูกจัดเตรียมโดย Hive SDK นั่นคือ ความสำเร็จและกระดานผู้นำใช้บัญชี Apple Game Center แต่ความสำเร็จและกระดานผู้นำใช้บัญชี Apple Game Center แต่บัญชีนี้อาจไม่เชื่อมโยงกับบัญชี Hive หรือแตกต่างจากบัญชี Hive ที่ผู้เล่นลงชื่อเข้าใช้ในปัจจุบัน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันของ Apple Game Center โปรดดูที่ Apple Game Center Guide.

Note

iOS Enterprise ไม่รองรับ Apple Game Center.

ความสำเร็จ

สร้างคลาส ProviderApple เพื่อใช้ฟังก์ชัน Achievement ของ Apple Game Center ผ่าน Hive SDK.

รายการความสำเร็จ

ในการโหลดรายการความสำเร็จ ให้เรียกใช้เมธอด loadAchievements()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive.ProviderApple.loadAchievements

// ขอรายการความสำเร็จจาก Provider Apple
// ใช้ hive


// ตัวจัดการ Callback ที่จัดการคำขอสำหรับรายการความสำเร็จไปยัง Provider Apple
public void onLoadAchievements(ResultAPI result, List achievementList) {

Logger.log("ProviderTestView.onLoadAchievements() Callback\nresult = " + result.toString() + "\n");

if (result.isSuccess() != true) 
    return;
}

// ขอรายการความสำเร็จจากผู้ให้บริการ Apple
ProviderApple.loadAchievements(onLoadAchievements);
#include "HiveProviderApple.h"

FHiveProviderApple::LoadAchievements(FHiveProviderAppleOnLoadAchievements::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveProviderAppleAchievement>& Achievements) {
        if (Result.IsSuccess())
        {
                // API call success
        }
}));

เอกสารอ้างอิง API: ProviderApple::loadAchievements

// ขอรายการความสำเร็จจากผู้ให้บริการ Apple
ProviderApple::loadAchievements([=](ResultAPI const & result,std::vector<ProviderAppleAchievement>; const & achievements) {
    // ผลลัพธ์การเรียกกลับ
    cout<<"ProviderApple::loadAchievements() Callback"<<endl<<result.toString()<<endl;


    if (result.isSuccess() != true)
        return;

});

เอกสารอ้างอิง API: HIVEProviderApple::showAchievements:

// ขอรายการความสำเร็จจากผู้ให้บริการ Apple
[HIVEProviderApple loadAchievements:^(HIVEResultAPI *result, NSArray<HIVEProviderAppleAchievement *>; *achievements) {


    Loggerd(@"HIVEProviderApple.loadAchievements:\nresult = %@\nachievements = %@", result, achievements);

    if (result.isSuccess) {

    }
    else {

    }

    }];

ขอรายงานความสำเร็จ

ในการรายงานความสำเร็จ ให้เรียกใช้วิธีการ reportAchievement() โดยตั้งค่าพารามิเตอร์เป็น อัตราความสำเร็จ และ การแสดงแบนเนอร์การแจ้งเตือนสำหรับความสำเร็จที่สำเร็จ.

ต่อไปนี้คือตัวอย่างโค้ด

เอกสารอ้างอิง API: hive .ProviderApple.reportAchievement

using hive;    

    //ความสำเร็จที่บรรลุ %. ความสำเร็จเสร็จสิ้นที่ 100    
    String achievementPercent = "100";    
    // ว่าจะแสดงแบนเนอร์ด้านบนเมื่อความสำเร็จสำเร็จหรือไม่ ค่าเริ่มต้นคือ false    
    Boolean isShow = true;    
    //รหัสความสำเร็จ    
    String achievementId = "com.hivesdk.achievement.10hit";    

    ProviderApple.reportAchievement(achievementPercent, isShow, achievementId, (ResultAPI result) => {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});
#include "HiveProviderApple.h"

//ความสำเร็จที่ได้รับ %. ความสำเร็จเสร็จสิ้นที่ 100 
FString Percent = TEXT("100");
// ว่าจะแสดงแบนเนอร์ด้านบนเมื่อความสำเร็จสำเร็จหรือไม่ ค่าเริ่มต้นคือ false  
bool bIsShow = true;
// รหัสความสำเร็จ
FString AchievementId = TEXT("com.hivesdk.achievement.10hit");

FHiveProviderApple::ReportAchievement(Percent, bIsShow, AchievementId, FHiveProviderAppleOnReportAchievement::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call successful
        }
}));

API Reference: ProviderApple ::reportAchievement

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    //ความสำเร็จที่ได้รับ %. ความสำเร็จเสร็จสิ้นที่ 100    
    string achievementPercent = "100";    
    // ไม่ว่าจะต้องแสดงแบนเนอร์ด้านบนเมื่อความสำเร็จสำเร็จหรือไม่ ค่าเริ่มต้นคือ false    
    bool isShow = true;    
    //รหัสความสำเร็จ    
    string achievementId = "com.hivesdk.achievement.10hit";    

    ProviderApple::reportAchievement(achievementPercent, isShow, achievementId, [=](ResultAPI const & result) {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: ProviderApple.reportAchievement

import HIVEService    

    //ความสำเร็จที่ได้รับ %. ความสำเร็จเสร็จสิ้นที่ 100    
    letachievementPercent = "100"    
    // ว่าจะแสดงแบนเนอร์ด้านบนเมื่อความสำเร็จสำเร็จหรือไม่ ค่าเริ่มต้นคือ false    
    let isShow = true    
    //รหัสความสำเร็จ    
    let achievementId = "com.hivesdk.achievement.10hit"    

    ProviderApple.reportAchievement(achievementPercent, showsCompletionBanner: isShow, achievementIdentifier: achievementId) { result in    
         if result.isSuccess() {    
             // call successful    
         }    
}

API Reference: HIVEProviderApple reportAchievement

#import <HIVEService/HIVEService-Swift.h>    

    //ความสำเร็จที่ได้รับ %. ความสำเร็จจะสมบูรณ์เมื่อ 100    
    NSString *achievementPercent = @"100";    
    // แสดงแบนเนอร์ด้านบนเมื่อความสำเร็จสำเร็จหรือไม่ ค่าเริ่มต้นคือ NO    
    BOOL isShow = YES;    
    //รหัสความสำเร็จ    
    NSString *achievementId = @"com.hivesdk.achievement.10hit";    

    [HIVEProviderApple reportAchievement: achievementPercent showsCompletionBanner: isShow achievementIdentifier: achievementId handler: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

คำขอเพื่อแสดง UI ความสำเร็จ (ผู้ช่วย)

Note

SDK 4.7.0 มี Helper ซึ่งช่วยเปรียบเทียบบัญชีที่ลงชื่อเข้าใช้ในอุปกรณ์ของผู้ใช้และบัญชีที่ซิงค์กับ PlayerID ได้อย่างง่ายดาย หากบัญชีทั้งสองไม่เหมือนกัน โปรดดูที่หน้า IdP Sync เพื่อจัดการกับสถานการณ์นี้。

เพื่อแสดง UI ความสำเร็จ ให้เรียกใช้เมธอด showAchievements()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive.AuthV4.Helper.showAchievements

using hive;

AuthV4.Helper.showAchievements ((ResultAPI result, AuthV4.PlayerInfo playerInfo) => {
switch (result.code) {
    case ResultAPI.Code.Success:
    // ส่งมอบความสำเร็จพร้อมการระบุความสำเร็จ
    break;
    case ResultAPI.Code.AuthV4ConflictPlayer:
    // ข้อขัดแย้งของบัญชี
    break;
    case ResultAPI.Code.AuthV4GoogleLogout:
    //TODO:
    // หลังจากออกจาก Google Play ให้ออกจากเกม
    // การเปิดเกมใหม่ต้องได้รับการจัดการโดยสตูดิโอพัฒนา
    break;
    default:
    // สถานการณ์ข้อยกเว้นอื่นๆ
    break;
}
});
#include "HiveAuthV4.h"

FHiveAuthV4::Helper::ShowAchievements(FHiveAuthV4HelperDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TOptional<FHivePlayerInfo>& PlayerInfo) {
        switch (Result.Code) {
                case FHiveResultAPI::ECode::Success:
                        // Deliver Success with achievement indication 
                        break;
                case FHiveResultAPI::ECode::AuthV4ConflictPlayer:
                        // account conflict 
                        break;
                default:
                        // other exception situations
                        break;
        }
}));

เอกสารอ้างอิง API: AuthV4 ::Helper::showAchievements

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    AuthV4::Helper::showAchievements([=](ResultAPI const & result, shared_ptr playerInfo) {    
      switch (result.code) {    
        case ResultAPI::Success:    
          // Deliver Success with achievement indication    
          break;    
        case ResultAPI::AuthV4ConflictPlayer:    
          // account conflict    
          break;    
        case ResultAPI::AuthV4GoogleLogout:    
          //TODO:    
          // After logging out of Google Play, log out of the game    
          // Relaunching the game must be handled by the development studio    
          break;    
        default:    
          // other exception situations    
          break;    
      }    
});

API Reference: AuthV4Interface .helper().showAchievements

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter    
    // จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ    

    import HIVEService    

    AuthV4Interface.helper().showAchievements() { result, playerInfo in    
         switch result.getCode() {    
             case .success:    
                 // ส่งมอบความสำเร็จพร้อมการระบุความสำเร็จ    
             case .authV4ConflitPlayer:    
                 // ความขัดแย้งของบัญชี    
             default:    
                 break    
         }    
}

API Reference: [ HIVEAuthV4 helper] showAchievements

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter    
    // จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ    

    #import <HIVEService/HIVEService-Swift.h>    

    [[HIVEAuthV4 helper] showAchievements: ^(HIVEResultAPI *result, HIVEPlayerInfo *playerInfo) {    
         switch ([result getCode]) {    
             case HIVEResultAPICodeSuccess:    
                 // Deliver Success with achievement indication    
                 break;    
             case HIVEResultAPICodeAuthV4ConflictPlayer:    
                 // account conflict    
                 break;    
             default:    
                 // other exception situations    
                 break;    
         }    
}];

ขอให้แสดง UI ความสำเร็จ

ในการแสดง UI ความสำเร็จ ให้เรียกใช้เมธอด showAchievements()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: ProviderApple.showAchievements

using hive;    

    ProviderApple.showAchievements((ResultAPI result) {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});
#include "HiveProviderApple.h"

FHiveProviderApple::ShowAchievements(FHiveProviderAppleOnShowAchievement::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // call successful
        }
}));

API Reference: ProviderApple::showAchievements

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

ProviderApple::showAchievements([=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // call successful
    }
});

เอกสาร API: ProviderApple.showAchievements

import HIVEService    

    ProviderApple.showAchievements() { result in    
         if result.isSuccess() {    
             // call successful    
         }    
}

API Reference: HIVEProviderApple showAchievements

#import <HIVEService/HIVEService-Swift.h>    

    [HIVEProviderApple showAchievements: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

ขอรีเซ็ตความสำเร็จ

ในการรีเซ็ตความสำเร็จ ให้ใช้วิธีการ resetAchievements()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive.ProviderApple.resetAchievements

using hive;

ProviderApple.resetAchievements((ResultAPI result) => {
    if (result.isSuccess()) {
        // call successful
    }
});
#include "HiveProviderApple.h"

FHiveProviderApple::ResetAchievements(FHiveProviderAppleOnResetAchievement::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call successful
        }
}));

เอกสารอ้างอิง API: ProviderApple ::resetAchievements

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

ProviderApple::resetAchievements([=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // call successful
    }
});

เอกสารอ้างอิง API: resetAchievements(_:)<

import HIVEService

ProviderApple.resetAchievements() { result in
    if result.isSuccess() {
        // call successful
    }
}

API Reference: HIVEProviderApple showAchievements

#import <HIVEService/HIVEService-Swift.h>    

    [HIVEProviderApple resetAchievements: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

กระดานคะแนน

สร้างคลาส ProviderApple เพื่อใช้ฟังก์ชัน Leaderboard ของ Apple Game Center ผ่าน Hive SDK.

ขอให้รายงานคะแนนในตารางคะแนน

เพื่อรายงานคะแนนลีดเดอร์บอร์ดไปยัง Apple Game Center ให้เรียกใช้วิธีการ reportScore()
ด้านล่างนี้คือตัวอย่างโค้ด

API Reference: hive .ProviderApple.reportScore

using hive;    

    String playerScore = "1234";    
    String leaderBoardId = "com.hivesdk.leaderboard.10hit";    

    ProviderApple.reportScore(playerScore, leaderBoardId, (ResultAPI result) => {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});
#include "HiveProviderApple.h"

FString PlayerScore = TEXT("1234");
FString LeaderBoardId = TEXT("com.hivesdk.leaderboard.10hit");

FHiveProviderApple::ReportScore(PlayerScore, LeaderBoardId, FHiveProviderAppleOnReportLeaderboard::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call successful
        }
}));

API Reference: ProviderApple ::reportScore

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

string playerScore = "1234";
string leaderBoardId = "com.hivesdk.leaderboard.10hit";

ProviderApple::reportScore(playerScore, leaderBoardId, [=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // call successful
    }
});

เอกสาร API: HIVEProviderApple::reportScore:leaderboardIdentifier:handler:

import HIVEService    

    let playerScore = "1234"    
    let leaderBoardId = "com.hivesdk.leaderboard.10hit"    

    ProviderApple.reportScore(playScore, leaderboardIdentifier: leaderboardId) { result in    
         if result.isSuccess() {    
             // call successful    
         }    
}

API Reference: HIVEProviderApple ::reportScore:leaderboardIdentifier:handler:

#import <HIVEService/HIVEService-Swift.h>    

    NSString *playerScore = @"1234";    
    NSString *leaderBoardId = "com.hivesdk.leaderboard.10hit";    

    [HIVEProviderApple reportScore: playerScore leaderboardIdentifier: leaderBoardId handler: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

คำขอเพื่อแสดง UI ของกระดานผู้นำ (ผู้ช่วย)

ในการแสดง UI ของกระดานผู้นำ ให้เรียกใช้เมธอด showLeaderboard()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive .AuthV4.Helper.showLeaderboard

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter    
    // จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ    

    ใช้ hive;    

    AuthV4.Helper.showLeaderboard((ResultAPI result, AuthV4.PlayerInfo playerInfo) => {    
         switch (result.code) {    
             case ResultAPI.Code.Success:    
                 // ส่งมอบความสำเร็จพร้อมการแสดงอันดับ    
                 break;    
             case ResultAPI.Code.AuthV4ConflictPlayer:    
                 // ความขัดแย้งของบัญชี    
                 break;    
             default:    
                 // สถานการณ์ข้อยกเว้นอื่น ๆ    
                 break;    
         }    
});

API Reference: AuthV4 ::Helper::showLeaderboard

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter
// จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

AuthV4::Helper::showLeaderboard([=](ResultAPI const & result, shared_ptr<PlayerInfo> playerInfo) {
    switch (result.code) {
        case ResultAPI::Success:
            // ส่งมอบความสำเร็จพร้อมการแสดงอันดับ
            break;
        case ResultAPI::AuthV4ConflictPlayer:
            // ข้อขัดแย้งบัญชี
            break;
        default:
            break;
    }
});

เอกสารอ้างอิง API: showLeaderboard

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter    
    // จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ    

    import HIVEService    

    AuthV4Interface.helper().showLeaderboard() { result, playerInfo in    
         switch result.getCode() {    
             case .success:    
                 // ส่งความสำเร็จพร้อมการแสดงกระดานผู้นำ    
             case .authV4ConflictPlayer:    
                 // ข้อขัดแย้งของบัญชี    
             default:    
                 break    
         }    
}

API Reference: HIVEProviderApple ::showLeaderboard:

// หากบัญชี Hive ที่เข้าสู่ระบบอยู่ในขณะนี้ไม่ได้เชื่อมต่อกับ GameCenter    
    // จะพยายามเชื่อมต่อกับ GameCenter โดยอัตโนมัติ    

    #import <HIVEService/HIVEService-Swift.h>    

    [[HIVEAuthV4 helper] showLeaderboard: ^(HIVEResultAPI *result, HIVEPlayerInfo *playerInfo) {    
         switch ([result getCode]) {    
             case HIVEResultAPICodeSuccess:    
                 // Deliver Success with leaderboard display    
                 break;    
             case HIVEResultAPICodeAuthV4ConflictPlayer:    
                 // account conflict    
                 break;    
             default:    
                 // other exception situations    
                 break;    
         }    
}];

ขอแสดง UI ของกระดานผู้นำ

เพื่อแสดง UI ของกระดานผู้นำ ให้เรียกใช้วิธีการ showLeaderboard()

ต่อไปนี้คือตัวอย่างโค้ด

API Reference: hive .ProviderApple.showLeaderboard

using hive;    

    ProviderApple.showLeaderboard((ResultAPI result) => {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});
#include "HiveProviderApple.h"

FHiveProviderApple::ShowLeaderboard(FHiveProviderAppleOnShowLeaderboard::CreateLambda([this](const FHiveResultAPI& Result) {
        if (Result.IsSuccess()) {
                // API call successful
        }
}));

API Reference: ProviderApple ::showLeaderboard

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    ProviderApple::showLeaderboard([=](ResultAPI const & result) {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: showLeaderboard(_:)

import HIVEService    

    ProviderApple.showLeaderboard() { result in    
         if result.isSuccess() {    
             // call successful    
         }    
}

API Reference: HIVEProviderApple ::showLeaderboard:

#import <HIVEService/HIVEService-Swift.h>    

    [HIVEProviderApple showLeaderboard: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

โพสต์รูปภาพบนโซเชียลมีเดีย

ผู้ใช้สามารถแชร์และโพสต์รูปภาพบน Facebook โดยการนำเข้ารูปภาพจากแกลเลอรีของอุปกรณ์ของตนผ่านเกม ตัวอย่างโค้ดมีดังนี้:

API Reference: SocialV4. sharePhoto

using hive;    

    SocialV4.ProviderType providerType = SocialV4.ProviderType.FACEBOOK;    

    SocialV4.sharePhoto(providerType, (ResultAPI result) => {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});
#include "HiveSocialV4.h"

ESocialV4ProviderType ProviderType = ESocialV4ProviderType::FACEBOOK;
FHiveSocialV4::SharePhoto(ProviderType, FHiveSocialV4OnSharePhotoDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
            if (Result.IsSuccess()) {
                // API call successful
        } 
}));

API Reference: SocialV4::sharePhoto

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    SocialV4::ProviderType providerType = SocialV4::ProviderType::FACEBOOK;    

    SocialV4::sharePhoto(providerType, [=](ResultAPI const & result) {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: SocialV4.sharePhoto

import com.hive.SocialV4    
    import com.hive.ResultAPI    

    val providerType = SocialV4.ProviderType.FACEBOOK    

    SocialV4.sharePhoto(providerType, object : SocialV4.SocialV4SharePhotoListener {    
         override fun onShare(result: ResultAPI) {    
             if (result.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: SocialV4.INSTANCE. sharePhoto

import com.hive.SocialV4;    
    import com.hive.ResultAPI;    

    SocialV4.ProviderType providerType = SocialV4.ProviderType.FACEBOOK;    

    SocialV4.INSTANCE.sharePhoto(providerType, result -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: SocialV4Interface.sharePhoto

import HIVEService    

    let providerType: SocialProviderType = .Facebook    

    SocialV4Interface.sharePhoto(providerType) { result in    
         if result.isSuccess() {    
             // call successful    
         }    
}

API Reference: HIVESocialV4 sharePhoto

#import <HIVEService/HIVEService-Swift.h>    

    HIVESocialProviderType providerType = HIVESocialProviderTypeFacebook;    

    [HIVESocialV4 sharePhoto: providerType handler: ^(HIVEResultAPI *result) {    
         if ([result isSuccess]) {    
             // call successful    
         }    
}];

การเข้าสู่ระบบอัตโนมัติสำหรับเกม PC ด้วยการเข้าสู่ระบบของชุมชน

เมื่อคุณคลิกปุ่มเล่นบน PC บนเว็บไซต์ชุมชน เกม PC จะถูกเปิดผ่าน Crossplay Launcher.

ในขณะนี้ เกม PC จะเข้าสู่ระบบโดยอัตโนมัติด้วย ‘ค่าโทเค็นล็อกอิน’ ของชุมชน

Warning

ฟีเจอร์การเข้าสู่ระบบอัตโนมัติสำหรับเกม PC ด้วยการเข้าสู่ระบบของชุมชน ใช้งานได้เฉพาะใน Windows เวอร์ชันของ Hive SDK v4 24.0.0 ขึ้นไป.

การเข้าสู่ระบบแบบปริยาย Steam (Unity Windows)

เริ่มต้นจาก Hive SDK v4 Unity Windows 24.2.0, การเข้าสู่ระบบแบบปริยายของ Steam ได้รับการสนับสนุน. หากคุณเลือกที่จะใช้การเข้าสู่ระบบแบบปริยาย คุณต้องใช้ AuthV4.Helper.signIn และไม่สามารถใช้ AuthV4.signIn(AUTO,...). เนื่องจากเป็นการเข้าสู่ระบบแบบปริยาย ผู้ใช้แอปจะเข้าสู่ระบบ Steam เพียงครั้งเดียวหลังจากติดตั้งเกม เมื่อใช้การเข้าสู่ระบบแบบปริยายของ Steam คุณต้องดำเนินการลบโฟลเดอร์ propFolder ซึ่งเก็บข้อมูลการกำหนดค่าของ SDK เมื่อแอปถูกลบออก