목차
플러그인 (프로/모바일만 지원) 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) 문제들을 반드시 피해야 합니다.
더 자세한 정보와 예제를 보시려면 아래를 보세요:-
더 많은 정보 보기 Further Information
플러그인에서 렌더링을 하려면 이것이 필요합니다.
- 저레벨 네이티브 플러그인 인터페이스 Low-level Native Plugin Interface - 사용자의 플러그인에서 렌더링을 하려면 이것이 필요합니다.
- 출처: 유니티코리아위키 (CC BY-NC-SA 2.0)