찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======iOS를 위한 빌드 플러그인 Building Plugins for iOS====== 이 페이지는 iOS 플랫폼을 위한 [[Plugins|Native Code Plugins]]을 설명합니다. =====iOS를 위한 네이티브 플러그인으로 앱 빌드하기 Building an Application with a Native Plugin for iOS===== - C# 파일 안에 사용자 extern method를 다음과 같이 정의합니다: \\ <file csharp>[DllImport ("_Internal")] private static extern float FooPluginFunction ();</file> - 에디터를 iOS 빌드 목표로 설정합니다 - 사용자 본래 구현을 생성된 Xcode프로젝트의 "Classes" 폴더에 추가합니다 (프로젝트가 업데이트 될때 이 폴다는 덮어씌여지지 않습니다. 그러나 사용자 본래 코드를 백업하는 것을 잊지 마세요). 플러그인 구현을 위해 C++ (.cpp) 또는 Objective-C (.mm)를 이용한다면 [[http://en.wikipedia.org/wiki/Name_mangling|name mangling issues]]를 피 하기 위해 함수가 C링키지와 함께 선언되도록 해야합니다. <file csharp>extern "C" { float FooPluginFunction (); } </file> =====C#에서 사용자 플러그인 사용하기 Using Your Plugin from C#===== iOS 네이티브 플러그인은 실제 장치에서만 불릴수 있으므로 모든 네이티브 코드 함수를 추가적인 C#코드 레이어로 감싸세요. 이 코드는 Application.platform으로 확인할수 있으며 실제 장치에서 실행될때만 본래 함수를 부를수 있고 에디터에서 실행될 때는 모형 값을 리 턴합니다. Bonjour 브라우저 샘플 프로그램을 확인하세요. =====네이티브 코드에서 C# / JavaScript 부르기 Calling C# / JavaScript back from native code===== 유니티 iOS는 제한적인 native->managed callback 기능을 //UnitySendMessage//을 통하여 지원합니다:<file csharp>UnitySendMessage("GameObjectName1", "MethodName1", "Message to send"); </file> 이 함수는 세개의 파라미터를 가지고 있습니다: 게임 객체 이름, 부를 게임 객체 스크립트 함수, 불려진 함수에 넘겨줄 메세지. 알아야할 제한은: - 다음의 시그니쳐와 사응하는 스크립트 함수만이 본래 코드에서 불려질 수 있습니다: <file csharp> function MethoName(message:string)</file> - //UnitySendMessage// 으로의 콜은 비동기이고 한 프레임의 딜레이가 있습니다. =====자동화된 플러그인 통합===== 유니티 iOS는 제한적인 자동화된 플러그인 통합을 지원합니다. - Assets///Plugins/iOS//에 있는 모든 //.a//,//.m//,//.mm//,//.c//,//.cpp//는 자동으로 생성된 Xcode 프로젝트로 통합 됩니다. - 통합은 symlinking 파일을 통해 가능한데 Assets///Plugins/iOS//에서 마지막 목적지로 통합하며 이것은 몇가지 workflow에 영향을 줄것입니 다. - Xcode 프로젝트 트리에 //.h// 파일은 포함되지 않았지만 그들은 마지막 목적지 파일 시스템에 나타나고 그래서.m/.mm/.c/.cpp의 컴파일 을 가능하게 합니다. _주의:_ 하위 폴더는 지원되지 않습니다. =====iOS 팁===== - Managed -> unmanaged 콜은 iOS에서 상당이 비쌉니다. 프레임당 여러개의 기본 함수를 부르지 않도록하세요. - 위에서 말한 것처럼 사용자 기본 함수를 장치에서 실제 코드를 부르고 에디터에서 모의 값을 리턴하는 추가적인 C# 레이어로 감싸세요. - 기본 함수에서 리턴된 스트링 값은 UTF-8로 인코딩되고 힙에 할당되어야 합니다. Mono marshaling 콜은 이것을 위해서는 무료입니다. - 위에서 언급한것 처럼 Xcode의 "Classes" 폴더는 사용자 기본 코드를 두기에 좋은데 왜냐하면 프로젝트가 업데이트되도 덮어씌여지지 않기 때문입니다. #기본 코드를 저장하기 좋은 또다른 곳은 에셋 폴더나 그 하위의 다른 폴더들 입니다. Xcode프로젝트에서 참조를 기본 코드 파일에 추가합니다. "Classes" 하위 폴더에서 오른쪽 클릭 후 "Add->Existing files..."를 선택합니다. =====예제 Examples===== ====Bonjour 브라우저 샘플==== 네이티브 코드 플러그인의 간단한 사용 예제는 [[Attach:iPhoneNativeCodeSample.zip|여기]]에서 찾을 수 있습니다. 이 샘플은 어떻게 Objective-C 코드가 Unity iOS 애플리케이션에서 호출될 수 있는지 잘 보여줍니다. 이 애플리케이션을 굉장히 단순한 Bonjour 클라이언트를 사용합니다. 이 애플리케이션은 Unity iOS 프로젝트(플러그인/Bonjour.cs 는 네이티브 코드로의 C# 인터페이스이며 BonjourTest.js는 그 애플리케이션 로직을 이행하는 JS 스크립트입니다)와 빌드된 XCode 프로젝트에 추가되었을 네이티브 코드(에셋/코드)로 구성되어 있습니다 {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.PluginsForIOS|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
플러그인 (프로/모바일만 지원) Plugins (Pro/Mobile-only feature)
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
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