Unreal Engine 5
คู่มือนี้อธิบายงานที่ต้องทำหลังจากติดตั้ง Hive SDK
การตั้งค่าฟีเจอร์การหมุนหน้าจออัตโนมัติ¶
เมื่อตั้งค่าทิศทางของหน้าจอเป็นทั้งสองทิศทาง (แนวนอนและแนวตั้ง) จะต้องมีการกำหนดค่าดังต่อไปนี้
แอนดรอยด์¶
ในการเปิดใช้งานฟีเจอร์การหมุนอัตโนมัติของหน้าจอให้ทำงานได้อย่างถูกต้องเมื่อกำหนดการหมุนหน้าจอไปยังทั้งสองทิศทาง (แนวนอนและแนวตั้ง) ในการสร้างแอป Android จะต้องมีการปรับเปลี่ยนโค้ดดังต่อไปนี้
- ไปที่ /Engine/Build/Android/Java/src/com/epicgames/unreal/GameActivity.java.template.
- เพิ่ม API
HiveActivity.onConfigurationChanged()
.@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 เป็น Legacy Build ตามที่แสดงด้านล่าง ให้ยกเลิกการเลือก Latest Xcode ในส่วน Project Settings > Platform > Xcode Project ของแผงด้านซ้าย
การใช้ HIVEAppDelegate (iOS)¶
ในการใช้ SDK ของ Hive ในสภาพแวดล้อมการพัฒนา iOS ให้ปรับเปลี่ยน AppDelegate โดยใช้ Swizzling เพิ่มโค้ดต่อไปนี้ในระหว่างขั้นตอนการเริ่มต้นเมื่อแอปเริ่มทำงาน
////////////////////////////////////////////////////////////////
// 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++ Standard Template Library จำเป็นต้องตั้งค่า FMallocAnsi ดังนี้ เพิ่มโค้ดต่อไปนี้ลงในไฟล์ {YourProject}.Target.cs ของโปรเจกต์แอปของคุณ