Version: 2023.1
언어: 한국어
관리되는 플러그인
데스크톱 플랫폼용 플러그인 빌드

네이티브 플러그인

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

네이티브 플러그인은 C# 스크립트가 다른 스크립트에 노출하는 단순한 C 인터페이스를 제공합니다. Unity는 또한 네이티브 플러그인이 특정 로우레벨 렌더링 이벤트가 발생했을 때(예를 들어 그래픽스 기기를 만들 때) 익스포트하는 함수도 호출할 수 있습니다. 자세한 내용은 로우레벨 네이티브 플러그인 인터페이스를 참조하십시오.

네이티브 플러그인에 대한 예제는 네이티브 렌더러 플러그인을 참조하십시오.

네이티브 플러그인 사용

네이티브 플러그인을 사용하려면 다음 단계를 수행하십시오.

  1. C 기반 언어로 함수를 작성하여 필요한 기능을 액세스합니다.
  2. 라이브러리로 컴파일합니다.
  3. Unity에서 네이티브 라이브러리의 함수를 호출하는 C# 스크립트를 생성합니다.

타겟 플랫폼에서 네이티브 코드 컴파일러로 네이티브 플러그인을 빌드합니다. 플러그인 함수가 C 기반 호출 인터페이스를 사용하므로 네임 맹글링(name mangling) 문제를 피하기 위해 함수를 반드시 C 링크에 선언해야 합니다.

예제

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

float ExamplePluginFunction () { return 5.0F; }

Unity에서 이 코드에 액세스하려면 다음의 C# 스크립트를 사용하십시오.

using UnityEngine;
using System.Runtime.InteropServices;

class ExampleScript : MonoBehaviour {
    #if UNITY_IPHONE
    // On iOS 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 ExamplePluginFunction ();

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

추가 정보

다음 페이지에서 플러그인에 렌더링을 구현하는 방법을 포함하여 네이티브 플러그인을 사용하여 타사 코드 라이브러리와 상호작용하는 방법에 대해 더 자세히 알아볼 수 있습니다.

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