추가 기능 설정하기
Android 설정하기¶
허큘리스 추가 기능 사용을 위해서는 Android Gradle 모듈에 prefab 기능이 사용 설정되어 있어야 합니다.
Android Studio 프로젝트 설정하기¶
-
Android Gradle Plugin 4.1 미만 사용시
-
gradle.properties 파일에 아래와 같이 추가합니다.
-
-
Android Gradle 플러그인 4.1 이상 사용시
-
build.gradle 파일에 있는 android 블록에 아래와 같이 추가합니다.
-
-
모듈 수준 build.gradle 파일의
dependencies에 아래 라이브러리 설정을 추가합니다.
CMake / ndk-build 설정하기 (C/C++ 사용시)¶
-
NDK r21 이상 사용 시
// 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 설정하기¶
설정 방법¶
- CocoaPods를 통해 프로젝트에 설치된 허큘리스 프레임워크의 경로 하위에서 .h를 찾아 프로젝트에 import 해줍니다.
시뮬레이터 혹은 디바이스 타겟 경로에 포함되어 있는 헤더 중 아무 것이나 선택하여 사용해도 무방합니다.
경로는 다음과 같습니다.
Unity 설정하기¶
Project Settings 설정하기¶
-
Unity 전처리기 플래그에 USE_HERCULES를 추가합니다.
- Player Settings → Other Settings → Script Compilation → Scripting Define Symbols
-
Allow ‘unsafe’ Code를 허용하도록 체크합니다.
- Player Settings → Other Settings → Script Compilation → Allow ‘unsafe’ Code
Unreal 설정하기¶
SDK Unreal Plugin이 포함하는 허큘리스 모듈은 허큘리스 추가 기능을 지원하지 않습니다.
Unreal 환경에서 허큘리스 추가 기능을 사용하려면 아래를 참고하세요.
- HiveSDK UE Plugin 에 포함된 허큘리스 모듈 제거
-
HiveSDK UE Plugin 상단에 있는 HerculesPlugin을 사용하도록 설정 (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" }); -
HiveSDK UE Plugin 에 포함된 HerculesPlugin을 사용하는 경우 주요 함수를 직접 호출해야 합니다.
#include "HerculesPlugin.h" // HiveConsole 에서 발급한 game_id 및 app_id 값을 사용합니다. #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));

