Unity 네이티브 플러그인 가이드
개요
Unity는 C, C++, Objective-C 등으로 작성된 네이티브 코드 라이브러리인 네이티브 플러그인을 지원합니다. 이러한 플러그인을 통해 C# 스크립트가 다양한 시스템 기능이나 기존 미들웨어 라이브러리와 연동할 수 있습니다.
네이티브 플러그인의 기능
- 네이티브 플러그인은 C# 스크립트가 쉽게 호출할 수 있도록 간단한 C 인터페이스를 제공합니다.
- 특정 저수준 렌더링 이벤트가 발생할 때, Unity는 네이티브 플러그인에서 내보낸 함수를 호출할 수 있습니다.
네이티브 플러그인 사용 방법
네이티브 플러그인을 사용하기 위해서는 다음 단계를 따라야 합니다:
- C 기반 언어로 필요한 기능을 수행하는 함수를 작성합니다.
- 해당 함수를 라이브러리로 컴파일합니다.
- Unity에서 이 네이티브 라이브러리의 함수를 호출하는 C# 스크립트를 작성합니다.
- 타겟 플랫폼의 네이티브 코드 컴파일러로 네이티브 플러그인을 빌드합니다.
플러그인 함수는 C 기반 호출 인터페이스를 사용해야 하며, 이를 위해 extern "C"
를 사용하여 이름 맹글링 문제를 피해야 합니다.
예제
아래는 단일 함수를 가진 간단한 네이티브 라이브러리의 C 소스 코드 예제입니다.
float ExamplePluginFunction () {
return 5.0F;
}
이 코드에 Unity에서 접근하려면 다음 C# 스크립트를 사용할 수 있습니다.
using UnityEngine;
using System.Runtime.InteropServices;
class ExampleScript : MonoBehaviour {
#if UNITY_IPHONE
[DllImport("__Internal")]
#else
[DllImport("PluginName")]
#endif
private static extern float ExamplePluginFunction();
void Awake () {
print(ExamplePluginFunction());
}
}
이 스크립트는 ExamplePluginFunction
을 호출하고, 콘솔에 5를 출력합니다.
추가 정보
더욱 자세한 내용은 다음 자료를 참고하세요: - 네이티브 플러그인을 사용하여 타사 코드 라이브러리와 상호작용하는 방법 - 로우레벨 네이티브 플러그인 인터페이스 - Mono Interop - MSDN의 P-invoke 문서
항목 | 설명 |
---|---|
네이티브 플러그인 정의 | C, C++, Objective-C 등의 언어로 작성된 네이티브 코드 라이브러리 |
사용 언어 | C, C++, Objective-C |
호출 방법 | C#에서 DllImport로 호출 |
빌드 단계 | C 기반 언어 -> 라이브러리 -> C# 스크립트 작성 -> 빌드 |
예제 함수 | float ExamplePluginFunction() |
Unity 접근 | DllImport 를 사용한 C#으로 접근 |
이 문서를 통해 Unity에서 네이티브 플러그인을 어떻게 활용할 수 있는지 이해할 수 있으며, 필요한 기능을 손쉽게 구현하실 수 있습니다.