문서의 이전 판입니다!


플러그인 (프로/모바일만 지원) Plugins (Pro/Mobile-only feature)

유니티는 C, C++, Objective-C에 기반을 둔 Plugins 에 대한 광범위한 지원을 합니다. 플러그인은 사용자의 게임 코드가(Javascript, C# 또는

Boo로 작성된 ) 본래의 코드 라이브러리를 부르는 것을 가능하게 합니다. 이것은 유니티가 다른 미들웨어 라이브러리 또는 기존의 C/C++ 코드와 통합되는 것을 가능하게 합니다.

_주의:_ 데스크탑 플랫폼에서 플러그인은 프로 버젼에서만 사용가능한 기능입니다. 보안상의 이유로 웹 플레이어에서는 사용할 수 없습니다.

플러그인을 사용하기 위해서는 두가지를 해야 합니다:-

  • C 기반 언어로 플러그인을 작성하고 라이브러리로 컴파일 합니다.
  • 라이브러리에 있는 함수를 호출하기 위한 C# 스크립트를 생성합니다.

플러그인은 간단한 C 인터페이스를 제공하고 그것을 C# 스크립트가 다른 사용자 스크립트에 노출시킵니다. 또한 어떤 저레벨의 렌더링 이벤트가 일어날때 (가령 그래픽 장치가 생성이 되었을때) 유니티가 플러그인에 의해서 내보내기 (export) 된 함수를 호출하는 것이 가능합니다. 더 상세한 설명을 원하시면 Native Plugin Interface 페이지를 보세요.

여기 아주 간단한 예제가 있습니다:

C 파일로 된 최소의 플러그인 The C File of a Minimal Plugin:

float FooPluginFunction () { return 5.0F; } 

플러그인을 사용하는 C# 스크립트 A C# Script that Uses the Plugin:

using UnityEngine;
using System.Runtime.InteropServices;
 
class SomeScript : MonoBehaviour {
 
   #if UNITY_IPHONE |UNITY_XBOX360
 
   // iOS나 Xbox360에서 플러그인은 정적으로
   // 실행파일들에 연결되어 있기 때문에
   // _Internal 을 라이브러리 이름으로 사용해야 합니다.
   [DllImport ("_Internal")]
 
   #else
 
   // 다른 플랫폼들은 플러그인을 여러가지 방법으로 로드하기 때문에
   // 플러그인의 다이나믹 라이브러리의 이름을 사용합니다.
   [DllImport ("PluginName")]
 
   #endif
 
   private static extern float FooPluginFunction ();
 
   void Awake () {
      // 플러그인안에 FooPluginFunction 을 호출하고
      // 콘솔에 5를 출력합니다
      print (FooPluginFunction ());
   }
} 

자바스크립트를 사용할때는 DLLName 이 사용자가 쓴 플러그인의 이름이거나 정적으로 링크된 네이티브 코드인 경우 "_Internal" 인 다음의 syntax 들을 사용해야 합니다: @DllImport (DLLName) static private function FooPluginFunction () : float {};

플러그인 생성하기 Creating a Plugin!

일반적으로 플러그인은 목표 플랫폼에 네이티브 코드 컴파일러로 빌드됩니다. 플러그인 함수들은 C 기반의 호출 인터페이스를 사용하기 때문에 C++이나 Objective-C 를 사용시 이름 엉망으로 만들기 (name mangling) 문제들을 반드시 피해야 합니다.

더 자세한 정보와 예제를 보시려면 아래를 보세요:-

desktop«

* 데스크탑 플랫폼을 위한 플러그인 빌드 Building Plugins for Desktop Platforms

ios«

* iOS를 위한 플러그인 빌드 Building Plugins for iOS

android«

* 안드로이드를 위한 플러그인 빌드Building Plugins for Android

더 많은 정보 보기 Further Information

플러그인에서 렌더링을 하려면 이것이 필요합니다.

역링크