コンテンツにスキップ

Unreal Engine 5

このガイドでは、Hive SDKをインストールした後に実行するタスクについて説明します。

画面の自動回転機能を設定する

画面の向きを両方向(横向きと縦向き)に設定する場合、次の構成が必要です。

アンドロイド

Androidアプリのビルドで画面の向きを両方の方向(横向きと縦向き)に設定したときに、画面の自動回転機能が正しく動作するようにするには、以下のコードの修正が必要です。

  1. /Engine/Build/Android/Java/src/com/epicgames/unreal/GameActivity.java.templateに移動します。
  2. HiveActivity.onConfigurationChanged() APIを追加します。
    @Override
    public void onConfigurationChanged(Configuration newConfig)
    {
    HiveActivity.onConfigurationChanged(this, newConfig); // 追加
    super.onConfigurationChanged(newConfig);
    
    
    // 向きを前方に進める
    boolean bPortrait = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT;
    nativeOnConfigurationChanged(bPortrait);
    }
    

iOS

Hive SDK Unreal Engine 5 iOSの画面自動回転に追加の設定は必要ありません。

Xcodeビルドの変更(iOS)

Hive SDK v4を適用するには、Xcodeビルドシステムをレガシービルドに変更する必要があります。以下のように、左パネルのプロジェクト設定 > プラットフォーム > Xcodeプロジェクトセクションで最新のXcodeのチェックを外してください。

HIVEAppDelegateを適用する (iOS)

iOS開発環境でHive SDKを使用するには、Swizzlingを使用してAppDelegateを修正します。アプリが起動する際の初期化段階で以下のコードを追加してください。

////////////////////////////////////////////////////////////////
// Add IOSAppDelegate.h header
#if PLATFORM_IOS
#include "Runtime/ApplicationCore/Public/iOS/IOSAppDelegate.h"
#endif
////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////
// Additional AppDelegate code
#if PLATFORM_IOS
UIApplication * dummyApplication = [UIApplication sharedApplication];

Class clzHIVEAppDelegate = NSClassFromString(@"HIVEAppDelegate");
SEL selApplicationDidFinishLaunchingWithOptions = NSSelectorFromString(@"application:didFinishLaunchingWithOptions:");
if( clzHIVEAppDelegate != nil && [clzHIVEAppDelegate respondsToSelector:selApplicationDidFinishLaunchingWithOptions] ) {
    NSMethodSignature *method = [clzHIVEAppDelegate methodSignatureForSelector:selApplicationDidFinishLaunchingWithOptions];
    if (method != nil) {

        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:method];
        [invocation setSelector:selApplicationDidFinishLaunchingWithOptions];
        [invocation setTarget:clzHIVEAppDelegate];
        [invocation setArgument:(void*)&dummyApplication atIndex:2];
        NSDictionary *localLaunchOptions = [IOSAppDelegate GetDelegate].launchOptions;
        if( localLaunchOptions != nil ) {
            [invocation setArgument:(void*)&localLaunchOptions atIndex:3];
        }
        [invocation invoke];
    }
}
#endif
////////////////////////////////////////////////////////////////

FmallocAnsi (iOS)の設定

Unreal Engine iOSとC++標準テンプレートライブラリの互換性を確保するために、FMallocAnsi設定が必要です。次のコードをアプリプロジェクトの{YourProject}.Target.csファイルに追加してください。

public class YourProjectTarget : TargetRules
{
    public YourProjectTarget(TargetInfo Target) : base(Target)
    {  
        // Force ANSI allocator for the app client
        if(Target.Platform == UnrealTargetPlatform.IOS)
        {
            GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
        }
    }
}