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

วิธีการใช้ฟีเจอร์ขั้นสูง

การตั้งค่า Android

ในการใช้ฟีเจอร์เพิ่มเติมของ Hercules คุณต้องเปิดใช้งานฟีเจอร์ prefab ในโมดูล Android Gradle

การตั้งค่าโปรเจกต์ Android Studio

  • เมื่อใช้ Android Gradle Plugin เวอร์ชันต่ำกว่า 4.1

    • เพิ่มลงในไฟล์ gradle.properties ดังนี้

      android.enablePrefab=true
      
  • หากใช้ Android Gradle Plugin 4.1 ขึ้นไป

    • ให้เพิ่มตามด้านล่างในบล็อก android ของไฟล์ build.gradle

      android {
          ...
          buildFeatures {
                  prefab true
          }
      }
      
  • ในไฟล์ build.gradle ระดับโมดูลของคุณ ให้เพิ่มไลบรารีต่อไปนี้ในส่วน dependencies:

    dependencies {
        implementation "com.com2us.android.hive:hive-hercules"
        implementation "com.com2us.android.gamesec:hercules:20250527" // สำหรับการใช้ฟีเจอร์เพิ่มเติมของ Hercules
    

การกำหนดค่า CMake / ndk-build (สำหรับการใช้งาน C/C++)

  • เมื่อใช้ NDK r21 หรือสูงกว่า

    // When using CMake
    find_package(Hercules REQUIRED CONFIG)
    
    target_link_libraries(
        ...
        Hercules::Hercules
    )
    
    // เมื่อใช้ Android.mk
    LOCAL_SHARED_LIBRARIES := Hercules
    
    include $(BUILD_SHARED_LIBRARY)
    
    ifneq ($(call ndk-major-at-least,21),true)
        $(call import-add-path,$(NDK_GRADLE_INJECTED_IMPORT_PATH))
    endif
    $(call import-module, prefab/Hercules)
    
  • เมื่อใช้ NDK r21 หรือต่ำกว่า

    • เพิ่มไฟล์ Hercules.h ลงในโปรเจกต์ของคุณแยกต่างหาก และเชื่อมโยงไฟล์ .so โดยตรงโดยการระบุเส้นทางของมัน.

      // เมื่อใช้ CMake
      target_link_libraries(
          ...
          ${CMAKE_CURRENT_SOURCE_DIR}/../build/intermediates/merged_native_libs/${CMAKE_BUILD_TYPE}/out/lib/${ANDROID_ABI}/libHercules.so
      )
      
      // เมื่อใช้ Android.mk
      include $(CLEAR_VARS)
      LOCAL_MODULE := Hercules
      LOCAL_SRC_FILES := ../build/intermediates/merged_native_libs/release/out/lib/$(TARGET_ARCH_ABI)/libHercules.so
      include $(PREBUILT_SHARED_LIBRARY)
      LOCAL_SHARED_LIBRARIES := Hercules
      

การตั้งค่า iOS

วิธีการตั้งค่า

  • ค้นหา .h ที่ติดตั้งในโปรเจกต์ผ่าน CocoaPods และนำเข้าไปยังโปรเจกต์
    คุณสามารถเลือกและใช้ส่วนหัวใดก็ได้ที่รวมอยู่ในเส้นทางเป้าหมายของซิมูเลเตอร์หรืออุปกรณ์
    เส้นทางมีดังนี้
    `${PROJECT_ROOT_DIR}/Pods/Hercules/Hive_SDK_iOS_External_${HIVE_SDK_VERSION}/Hercules.xcframework/${SIMULATOR_OR_PHONEOS}/Hercules.framework/Headers/Hercules.h`
    

ตั้งค่า Unity

ตั้งค่าโครงการ

  • เพิ่มธงพรีโปรเซสเซอร์ USE_HERCULES ใน Unity

    • การตั้งค่าผู้เล่น → การตั้งค่าอื่น ๆ → การรวบรวมสคริปต์ → สัญลักษณ์กำหนดสคริปต์

  • ตรวจสอบให้อนุญาตโค้ดที่ 'ไม่ปลอดภัย'。

    • การตั้งค่าผู้เล่น → การตั้งค่าอื่น ๆ → การคอมไพล์สคริปต์ → อนุญาตโค้ดที่ 'ไม่ปลอดภัย'

การตั้งค่า Unreal

โมดูล Hercules ที่รวมอยู่ใน SDK Unreal Plugin ไม่รองรับส่วนเสริมของ Hercules
หากต้องการใช้ส่วนเสริมของ Hercules ในสภาพแวดล้อม Unreal ให้ดูคำแนะนำต่อไปนี้

  • ลบโมดูล Hercules ที่รวมอยู่ใน HiveSDK UE Plugin
  • ตั้งค่าไม่ให้ใช้งานโมดูล Hercules ที่ถูกลบ

    hive::Configuration::setUseHercules(false);
    

  • เปิดใช้งาน HerculesPlugin ที่อยู่ด้านบนของ HiveSDK UE Plugin (เลือกตามแพลตฟอร์มที่ใช้ใน Build.cs)

    if (Target.Platform == UnrealTargetPlatform.Android)
        PrivateDependencyModuleNames.AddRange(new string[] { "HerculesPlugin" });
    if (Target.Platform == UnrealTargetPlatform.IOS)
        PrivateDependencyModuleNames.AddRange(new string[] { "HerculesPlugin" });
    if (Target.Platform == UnrealTargetPlatform.Win64)
        PrivateDependencyModuleNames.AddRange(new string[] { "HerculesPlugin" });
    
  • หากใช้ HerculesPlugin ที่รวมอยู่ใน HiveSDK UE Plugin จำเป็นต้องเรียกใช้ฟังก์ชันหลักโดยตรง

    #include "HerculesPlugin.h"
    
    // ใช้ค่า game_id และ app_id ที่ออกให้จาก HiveConsole
    #if PLATFORM_WINDOWS
        CHerculesPlugin::Initialize(game_id, 0, app_id, app_version);
    #else
        CHerculesPlugin::Initialize(game_id, 0);
    #endif
    
    // ตั้งค่าเมื่อมีการออก Hive Device ID
    ::HerculesSetDeviceId(TCHAR_TO_UTF8(*deviceId));
    
    // ตั้งค่า Player ID เมื่อผู้ใช้ล็อกอิน และตั้งค่าอีกครั้งเมื่อมีการล็อกอินใหม่
    ::HerculesSetPlayerId(TCHAR_TO_UTF8(*playerId));