Unity IL2CPP 스크립팅 백엔드 가이드
이 가이드는 Unity에서 IL2CPP(Intermediate Language To C++) 스크립팅 백엔드를 사용하여 Windows용 프로젝트를 빌드할 때의 과정을 설명합니다. IL2CPP를 통해 관리되는 C# 코드를 C++로 변환하고, 네이티브 바이너리를 생성할 수 있습니다.
IL2CPP란?
IL2CPP는 Unity의 스크립팅 백엔드 중 하나로, C# 스크립트를 IL 코드로 변환하고 다시 C++ 코드로 컴파일하여 최종적으로 네이티브 실행 파일을 생성합니다.
IL2CPP 설정
IL2CPP를 사용해 Windows 플레이어용 프로젝트를 빌드하기 위해서는 다음 단계를 따르십시오:
- 프로젝트 설정: Unity 에디터에서
Build Settings
로 이동하여 플랫폼을 Windows로 설정합니다. - 스크립팅 백엔드 선택:
Player Settings
에서 스크립팅 백엔드를 IL2CPP로 설정합니다.
C++ 소스 플러그인 추가하기
C++ 파일 추가
C++ 소스 파일을 Unity 프로젝트에 추가하여 플러그인으로 사용하고, 인스펙터에서 설정할 수 있습니다. C++ 파일은 다음과 같이 작성하여 관리된 어셈블리와 함께 컴파일됩니다.
예제
[DllImport("__Internal")]
private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
위 예제는 C#에서 C++ 함수를 호출하는 방법입니다. 이는 C++ 코드에서 정의된 CountLettersInString
함수를 통해 문자열의 길이를 반환합니다.
C++ 함수 정의
extern "C" __declspec(dllexport) int __stdcall CountLettersInString(wchar_t* str)
{
int length = 0;
while (*str++ != L'\0')
length++;
return length;
}
이 코드는 C++에서 문자열의 길이를 계산하여 반환합니다.
IL2CPP 빌드 파일 구조
IL2CPP를 사용하는 프로젝트는 다음과 같은 중요 파일들을 생성합니다.
파일 | 설명 |
---|---|
a_Data | 게임 데이터가 있는 폴더입니다. |
a.exe | 메인 게임 실행 파일입니다. |
UnityCrashHandler64.exe | 크래시 핸들러 실행 파일입니다. |
UnityPlayer.dll | 모든 네이티브 코드가 포함된 Unity 플레이어 라이브러리입니다. |
WinPixEventRuntime.dll | Windows 런타임용 PIX입니다. |
a_BackUpThisFolder_ButDontShipItWithYourGame | 게임 디버깅에 필요한 데이터가 있는 폴더입니다. |
GameAssembly.dll | IL2CPP 런타임과 모든 스크립트 코드가 포함된 라이브러리입니다. |
SymbolMap | 모든 관리되는 함수 주소와 해당 길이 리스트가 포함된 파일입니다. |
추가 리소스
마무리
이 문서에서는 IL2CPP 스크립팅 백엔드를 이용한 Unity 프로젝트 빌드 방법 및 C++ 플러그인 사용법을 간단히 설명하였습니다. 다양한 프로젝트에 IL2CPP를 활용하여 성능을 극대화해보세요.