찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======플러그인 (프로/모바일만 지원) Plugins (Pro/Mobile-only feature)====== 유니티는 C, C++, Objective-C에 기반을 둔 ''Plugins'' 에 대한 광범위한 지원을 합니다. 플러그인은 사용자의 게임 코드가(Javascript, C# 또는 Boo로 작성된 ) 본래의 코드 라이브러리를 부르는 것을 가능하게 합니다. 이것은 유니티가 다른 미들웨어 라이브러리 또는 기존의 C/C++ 코드와 통합되는 것을 가능하게 합니다. _주의:_ 데스크탑 플랫폼에서 플러그인은 프로 버젼에서만 사용가능한 기능입니다. 보안상의 이유로 웹 플레이어에서는 사용할 수 없습니다. 플러그인을 사용하기 위해서는 두가지를 해야 합니다:- * C 기반 언어로 플러그인을 작성하고 라이브러리로 컴파일 합니다. * 라이브러리에 있는 함수를 호출하기 위한 C# 스크립트를 생성합니다. 플러그인은 간단한 C 인터페이스를 제공하고 그것을 C# 스크립트가 다른 사용자 스크립트에 노출시킵니다. 또한 어떤 저레벨의 렌더링 이벤트가 일어날때 (가령 그래픽 장치가 생성이 되었을때) 유니티가 플러그인에 의해서 내보내기 (export) 된 함수를 호출하는 것이 가능합니다. 더 상세한 설명을 원하시면 [[http://unitykoreawiki.com/index.php?n=KrMain.NativePluginInterface.html|Native Plugin Interface]] 페이지를 보세요. 여기 아주 간단한 예제가 있습니다: =====C 파일로 된 최소의 플러그인 The C File of a Minimal Plugin:===== <file csharp>float FooPluginFunction () { return 5.0F; } </file> =====플러그인을 사용하는 C# 스크립트 A C# Script that Uses the Plugin:===== <file csharp>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 ()); } } </file> 자바스크립트를 사용할때는 DLLName 이 사용자가 쓴 플러그인의 이름이거나 정적으로 링크된 네이티브 코드인 경우 "_Internal" 인 다음의 syntax 들을 사용해야 합니다: @DllImport (DLLName) static private function FooPluginFunction () : float {}; ======플러그인 생성하기 Creating a Plugin!====== 일반적으로 플러그인은 목표 플랫폼에 네이티브 코드 컴파일러로 빌드됩니다. 플러그인 함수들은 C 기반의 호출 인터페이스를 사용하기 때문에 C++이나 Objective-C 를 사용시 이름 엉망으로 만들기 (name mangling) 문제들을 반드시 피해야 합니다. 더 자세한 정보와 예제를 보시려면 아래를 보세요:- >>desktop<< * [[unity:PluginsForDesktop|데스크탑 플랫폼을 위한 플러그인 빌드 Building Plugins for Desktop Platforms]] >>ios<< * [[unity:PluginsForIOS|iOS를 위한 플러그인 빌드 Building Plugins for iOS]] >>android<< * [[unity:PluginsForAndroid|안드로이드를 위한 플러그인 빌드Building Plugins for Android]] =====더 많은 정보 보기 Further Information===== 플러그인에서 렌더링을 하려면 이것이 필요합니다. * [[unity:NativePluginInterface]] - 사용자의 플러그인에서 렌더링을 하려면 이것이 필요합니다. * [[http://www.mono-project.com/Interop_with_Native_Libraries|네이티브 라이브러리와 Mono Interop (Mono Interop with native libraries)]]. * [[http://msdn2.microsoft.com/en-us/library/fzhhdwae.aspx|MSDN에 관한 P-invoke 문서 (P-invoke documentation on MSDN)]]. {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.Plugins|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
안드로이드를 위한 플러그인 만들기 Building Plugins for Android
iOS를 위한 빌드 플러그인 Building Plugins for iOS
Xbox 360을 위한 플러그인의 구축
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye