Version: 2019.3
언어: 한국어
Windows 플레이어: IL2CPP 빌드 파일
유니버설 Windows 플랫폼

Windows 플레이어: IL2CPP용 C++ 소스 코드 플러그인

IL2CPP 스크립팅 백엔드를 사용할 때 C++(.cpp) 코드 파일을 Unity 프로젝트에 직접 추가할 수 있습니다. 이 C++ 파일은 플러그인 인스펙터 내에서 플러그인 역할을 합니다. Windows 플레이어와 호환되도록 C++ 파일을 설정하면 Unity는 해당 파일을 관리되는 어셈블리에서 생성되는 C++ 코드와 함께 컴파일합니다. 인스펙터(Inspector) 창의 플랫폼 설정(Platform settings) 섹션에서 .cpp 파일을 클릭하고 적합한 Windows 옵션을 선택하십시오.

C++ 파일용 플러그인 임포터 설정
C++ 파일용 플러그인 임포터 설정

함수들은 생성된 C++ 코드와 연결되어 있으므로 _P/Invoke를 호출할 별도의 DLL 파일은 없습니다. 이런 이유로 DLL 이름 대신 "__Internal" 키워드를 사용할 수 있으며, 이 경우 다음 예제와 같이 런타임 시점에 함수를 로드하는 대신 C++ 링커가 함수를 확인하는 역할을 맡습니다.

[DllImport("__Internal")]
private static extern int
CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);

다음과 같이 NativeFunctions.cpp에서 이러한 종류의 함수를 정의할 수 있습니다.

extern "C" __declspec(dllexport) int __stdcall CountLettersInString(wchar_t* str)
{
    int length = 0;
    while (*str++ != L'\0')
        length++;
    return length;
}

링커가 함수 호출을 확인하기 때문에 관리되는 런타임 시점에서 실행되는 C# 코드와 같이 관리되는 쪽의 함수 선언에 있는 모든 오류는 런타임 오류가 아니라 링커 오류를 생성합니다. 즉, 런타임 시점에 동적 로딩을 수행할 필요가 없으며, 함수가 C#에서 직접 호출됩니다. 따라서 P/Invoke 호출의 성능 소모가 크게 감소합니다.

참고 항목

플러그인 인스펙터

  • • 2018–03–13 페이지 게시됨

  • 2018.1의 새로운 기능 NewIn20181

Windows 플레이어: IL2CPP 빌드 파일
유니버설 Windows 플랫폼