Version: 5.3
관리되는 플러그인
데스크톱 플랫폼용 플러그인 빌드

네이티브 플러그인

Unity는 C, C++, Objective-C 등으로 작성한 네이티브 코드의 라이브러리인 네이티브 플러그인 을 폭넓게 지원합니다. 플러그인은 (JavaScript 또는 C#로 작성한)게임 코드가 이런 라이브러리에서 함수를 호출하게 해줍니다. Unity를 미들웨어 라이브러리나 기존의 C/C++ 게임 코드와 통합시키는 기능입니다.

Note: For security reasons, plugins are not usable in web player.

네이티브 플러그인을 사용하려면 원하는 기능에 액세스하고 이를 라이브러리에 컴파일링하도록 C 기반 언어로 함수를 작성해야 합니다. Unity에서는 네이티브 라이브러리에서 함수를 호출하는 C# 스크립트도 만들어야 합니다.

네이티브 플러그인은 C# 스크립트가 다른 사용자 스크립트에 노출되는 단순한 C 인터페이스를 제공해야 합니다 또 낮은 레벨의 렌더링 이벤트가 발생했을 때(가령 그래픽스 디바이스의 생성), Unity는 네이티브 플러그인으로 내보낸 함수를 호출할 수 있습니다. 자세한 내용은 네이티브 플러그인 인터페이스 페이지를 참조하십시오.

예제

단일 함수를 가진 매우 간단한 네이티브 라이브러리는 다음과 같이 보이는 소스 코드를 가집니다.

    float FooPluginFunction () { return 5.0F; }

Unity에서 코드에 액세스하려면 다음의 코드를 사용할 수 있습니다.

    using UnityEngine;
    using System.Runtime.InteropServices;

    class SomeScript : MonoBehaviour {

       #if UNITY_IPHONE || UNITY_XBOX360
   
       // On iOS and Xbox 360 plugins are statically linked into
       // the executable, so we have to use __Internal as the
       // library name.
       [DllImport ("__Internal")]

       #else

       // Other platforms load plugins dynamically, so pass the name
       // of the plugin's dynamic library.
       [DllImport ("PluginName")]
    
       #endif

       private static extern float FooPluginFunction ();

       void Awake () {
          // Calls the FooPluginFunction inside the plugin
          // And prints 5 to the console
          print (FooPluginFunction ());
       }
    }

Javascript를 사용할 때는 DLLName이 작성한 플러그인의 이름인 다음 구문을 활용하거나 정적으로 링크된 네이티브 코드를 작성하는 경우에는 “Internal”을 사용해야 합니다.

    @DllImport (DLLName)
        static private function FooPluginFunction () : float {};

네이티브 플러그인 생성

일반적으로 플러그인은 타겟 플랫폼에서 네이티브 코드 컴파일러로 빌드됩니다. 플러그인 함수는 C 언어 기반의 호출 인터페이스를 사용하므로 C++과 Objective-C를 사용할 때 네임 맹글링 문제를 피해야 합니다.

추가 정보

관리되는 플러그인
데스크톱 플랫폼용 플러그인 빌드