UPL은 모바일 환경에서 종속적인 코드를 추가하거나 환경 설정을 위해 사용
UBT는 설정된 UPL xml을 통해 다음 파일들을 수정
- AndroidManifest.xml
- plist
- GameActivity.java와 같은 일부 java 파일
UPL xml 설정(안드로이드)
1. 프로젝트 경로/Source/프로젝트에 UPL.xml 파일(파일 이름은 적당히 수정)을 만든다
<?xml version="1.0" encoding="utf-8"?>
<root>
...
</root>
2. 프로젝트.build.cs에 다음을 추가
if (Target.Platform == UnrealTargetPlatform.Android)
{
string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
AdditionalPropertiesForReceipt.Add("AndroidPlugin", System.IO.Path.Combine(PluginPath, "UPL.xml"));
}
GameActivity.java / onCreate에서 네이티브 코드를 호출하는 경우
UPL.xml
<?xml version="1.0" encoding="utf-8"?>
<root>
<!-- 네이티브 함수 선언 -->
<gameActivityClassAdditions>
<insert>
native void NativeOnCreateLogic();
</insert>
</gameActivityClassAdditions>
<!-- onCreate에 다음 네이티브 함수 호출 -->
<gameActivityOnCreateAdditions>
<insert>
NativeOnCreateLogic();
</insert>
</gameActivityOnCreateAdditions>
</root>
C++ 로직
클래스(여기서는 UPMPlatformHelper로 생성)를 하나 만들고 cpp에 다음을 추가
#include "PMPlatformHelper.h"
#if PLATFORM_ANDROID
extern "C"
{
void Java_com_epicgames_unreal_GameActivity_NativeOnCreateLogic(JNIEnv*, jobject);
}
void Java_com_epicgames_unreal_GameActivity_NativeOnCreateLogic(JNIEnv* jenv, jobject thiz)
{
// 여기서 상황에 맞게 처리
}
#endif
Android 패키징 후 다음 경로에서 파일을 확인하여 정상적으로 적용되었는지 확인
프로젝트경로/Intermediate/Android/arm64/src/com/epicgames/unreal/GameActivity.java
'Unreal > 기본' 카테고리의 다른 글
[Unreal] 파이썬 사용 (0) | 2024.11.23 |
---|---|
[Unreal] Json 사용법 (0) | 2024.08.23 |
[Unreal] Android 빌드 설정 (0) | 2024.06.30 |
[Unreal] 에디터에서 클래스 생성시 utf-8로 파일 생성 (0) | 2024.05.04 |
[Unreal] AnimInstance 인터페이스 (0) | 2024.05.01 |