# 네이티브 UWP 플러그인 호출 및 구현

> Understand how to call and implement native plug-ins.

네이티브 UWP(유니버설 Windows 플랫폼) 플러그인을 호출하고 구현하려면 Unity용 네이티브 플러그인을 생성하는 방법을 알아야 합니다. 네이티브 플러그인과 그 사용법에 대한 자세한 내용은 [네이티브 플러그인](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native.md)을 참조하십시오.

IL2CPP 스크립팅 백엔드는 네이티브 플러그인에 대해 P/Invoke 메커니즘을 지원합니다. 즉, C# 코드에서 직접 네이티브 플러그인을 호출할 수 있습니다. 이렇게 하려면 네이티브 함수 프로토 유형을 지정하고 호출합니다.

다음 예시는 C# 스크립트에서 네이티브 플러그인을 구현하고 호출하는 방법을 보여 줍니다.

1. Unity 프로젝트에서 새 .cpp 파일을 생성하고 다음 네이티브 플러그인 코드를 삽입합니다.

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

2. 새 C# 스크립트를 생성하고 콘텐츠를 다음 코드로 바꿉니다.

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

       private void Start()
       {
           Debug.Log(CountLettersInString("Hello, native plug-in!"));
       }
   ```

3. 씬의 게임 오브젝트에 컴포넌트를 추가하고 플레이 모드를 시작합니다. 콘솔에 22가 출력됩니다.

   ```
   using UnityEngine;
   public class ExamplePlugin : MonoBehaviour
   {
       [DllImport("MyPlugin.dll")]
       private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);

       private void Start()
       {
           Debug.Log(CountLettersInString("Hello, native plug-in!"));
       }
   }
   ```

## 추가 리소스##additional-resources

* [네이티브 플러그인](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native.md)
* [플러그인 임포트 및 설정](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/plug-in-inspector.md)
* [P/Invoke 사용](/engine/6000.0/manual/platform-specific/windows-store/uwp-developing/uwp-il2cpp-scripting/uwp-il2cpp-plugins/uwp-pinvoke.md)
