데스크톱 플랫폼용 플러그인은 C, C++ 및 Objective C로 작성된 네이티브 코드 라이브러리입니다. 이 페이지는 Windows, macOS 및 Linux용 플러그인을 설명합니다. 자세한 내용은 네이티브 플러그인 문서를 참조하십시오.
macOS 플러그인을 번들로 배포할 수 있습니다. 또는 IL2CPP를 사용하는 경우 [DllImport(“__Internal”)] 구문을 사용하여 호출할 수 있는 루스 C++ 파일로 배포할 수 있습니다. 루스 C++ 플러그인에 대한 자세한 내용은 C++ IL2CPP용 소스 코드 플러그인 문서를 참조하십시오.
XCode로 번들 프로젝트를 생성하려면 XCode 11을 열고 File > New > Project 를 선택한 후 macOS > Framework & Library > Bundle 로 이동하십시오. XCode 사용에 관한 자세한 내용은 XCode에 관한 Apple 문서를 참조하십시오.
플러그인을 64비트 아키텍처가 들어 있는 유니버설 바이너리로 빌드할 수 있습니다. 또는 별도 dylib 파일을 제공할 수도 있습니다. C++ (.cpp) 또는 Objective-C (.mm)를 사용하여 플러그인을 구현하는 경우 이름 손상 문제를 피하기 위해 C 링크를 사용하여 함수를 선언해야 합니다.
extern "C"
{
float FooPluginFunction ();
}
Windows의 플러그인은 익스포트된 함수가 포함된 .dll 파일입니다. 또는 IL2CPP를 사용하는 경우 루스 C++ 파일입니다. 대부분의 언어 및 개발 환경에서 .dll 파일을 사용하여 플러그인을 만들 수 있습니다. 이름 손상 문제를 피하기 위해 C 링크를 사용하여 C++ 함수를 선언해야 합니다.
Linux의 플러그인은 익스포트된 함수가 포함된 .so 파일입니다. 이러한 라이브러리는 보통 C 또는 C++로 작성되지만 모든 언어를 사용할 수 있습니다. 다른 플랫폼과 마찬가지로 이름 손상 문제를 피하기 위해 C 링크를 사용하여 C++ 함수를 선언해야 합니다.
Unity에서 Plugin Inspector 는 플러그인을 관리합니다. 플러그인 인스펙터에 액세스하려면 프로젝트 창에서 플러그인 파일을 선택해야 합니다. 스탠드얼론 플랫폼의 경우 라이브러리가 호환되는 CPU 아키텍처를 선택할 수 있습니다. 크로스 플랫폼 플러그인의 경우 .bundle 파일(macOS용), .dll 파일(Windows용), .so 파일(Linux용)을 포함해야 합니다. Unity는 타겟 플랫폼에 맞는 적절한 플러그인을 자동으로 선택하고 플레이어와 함께 포함합니다. 자세한 내용은 플러그인 인스펙터 문서를 참조하십시오.
번들을 빌드하면 Unity 프로젝트의 Assets 폴더(또는 적절한 아키텍처별 서브 디렉토리)에 배치해야 합니다. 이와 같은 함수를 C# 스크립트에 정의할 때 Unity는 이름을 사용하여 다음과 같은 함수를 찾습니다.
[DllImport ("PluginName")]
private static extern float FooPluginFunction ();
참고: PluginName
은 라이브러리 접두사와 파일 확장자를 포함할 필요가 없다는 점에 유의하시기 바랍니다. 예를 들어 플러그인 파일의 실제 이름은 Windows의 경우 PluginName.dll, Linux의 경우 libPluginName.so입니다.
프로젝트 | 설명 | 링크 |
---|---|---|
간단한 플러그인 예제 | 이 프로젝트는 숫자 출력, 문자열 출력, 두 개의 플로트 추가, 두 개의 정수 추가 등과 같은 기본 동작을 구현합니다. | Unity GitHub 저장소 링크를 사용하여 간단한 플러그인 예제 프로젝트를 다운로드하십시오. 이 프로젝트에는 Windows, macOS 및 Linux 프로젝트 파일이 포함됩니다. |
네이티브 렌더러 플러그인 | 저수준 렌더링 플러그인의 예제입니다. 이 프로젝트는 다음을 보여줍니다. - 모든 정규 렌더링이 완료된 후 C++ 코드에서 회전하는 삼각형을 렌더링합니다. - Texture.GetNativeTexturePtr로 C++ 코드에 접근해 절차적 텍스처를 채웁니다. |
제공된 Unity GitHub 저장소 링크를 사용하여 네이티브 렌더러 플러그인을 다운로드하십시오. 이 프로젝트에는 Windows, UWP, macOS, WebGL 및 Android 파일이 들어 있습니다. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.