본문 바로가기
모바일/유니티

유니티 | 플러그인의 이해

by KISCH 2020. 3. 10.
반응형

유니티 플러그인에 대해 간단하게 알아보겠습니다.

 

유니티플러그인

 

 

유니티 플러그인

 

Unity 외부에서 만들어진 코드를 Plugin 형태로 포함

 

관리되는 플러그인

1) Visual Studio 또는 MonoDevelop과 같은 툴을 사용하여 관리

2) .NET 어셈블리, .NET 코드만 포함. -> .NET 라이브러리에서 지원하지 않는 기능에 액세스할 수 없음

 

네이티브 플러그인

1) 플랫폼별 고유 코드 라이브러리

2) Unity에서 사용할 수 없는 OS 호출 및 타사 코드 라이브러리와 같은 기능에 액세스할 수 있다

3) Unity의 툴에 액세스할 수 없다

 

 

 

 

유니티 플러그인의 이해

 

유니티플러그인레이어

 

Bridge(C#,javascript,boo) -> Unity Interface

iOS/AOS Plugin -> Native Interface

 

규칙

1) Plugins 폴더 : Plugin관련 설정, library, Class

2) Plugins/iOS

3) Plugins/Android

 

유니티 플러그인 네이티브 호출

1) 순서 : Bridge -> Native Plugin -> Native 순서로 호출

2) 응답 : Unity가 제공하는 API를 통하여 GameObject에 전달

3) 데이터형 : iOS의 경우 const char*만 가능 -> string으로 통일하는 것이 좋다

 

네이티브에서 유니티로 메세지 전송

1) Native에서 Unity로 메세지를 전송하는 방법

2) Unity는 모바일 OS 별로 Message 전송용 API를 제공

3) iOS

void UnitySendMessage(const char* obj, const char* method, const char* msg);​
​const char* method : Callback ​Method Name
​const char* msg : Message

4) Android

import com.unity3d.player.UnityPlayer;​ 

public static void UnitySendMessage(String obj, String method, String msg);​

String obj : GameObject Name
String method : Callback Method Name
String msg​ : Message

 

GameObject Name은 Callback Method가 구현된 GameObject의 이름

GameObject가 Destroy되면 Message가 전달 안되므로 Destroy되지 않도록 주의

 

 

 

 

반응형

'모바일 > 유니티' 카테고리의 다른 글

유니티 | Unity Interface 개발  (0) 2020.03.11
유니티 | AOS 플러그인  (0) 2020.03.11
유니티 | iOS 플러그인과 에디터 플러그인  (0) 2020.03.10
유니티 | WebView  (2) 2020.03.10
유니티 | Spine2D  (0) 2020.03.10
유니티 | UnityAds 설치  (1) 2020.03.10
유니티 | UGUI 기초  (0) 2020.03.10
유니티 | 렌더링 순서  (0) 2020.03.10

댓글