Extracted Android Code.zip
Original Unity Code.zip
Processed Android Code.zip
Processed Unity Code.zip
개 요.
유니티는 기본적으로 임베디드 시스템입니다. 즉, Android native 속에서 동작하는 코드입니다. 하지만, Android Plugin은 의미상으로, 유니티 상에 또, 안드로이드가 들어 가는 것입니다. 개념상으로 완전히 말이 안되는 것 인데, 작업상의 의미이고, Android Plugin 폴더 속에 있는 데이터 및 코드들은 Android Lib 폴더로 이동시키고, 빌드를 하게 됩니다.
참고 1. 유니티의 Android 시작 Activity는 'UnityPlayerProxyActivity' 이며 역할은 Android SDK 가 9 버전 이상일 때는 'UnityPlayerNativeActivity'를 아닐 때는 'UnityPlayerActivity'를 호출해 줍니다.
참고 2. 시작 프로젝트인 'UnityPlayerProxyActivity'가 플러그인 폴더 속에 있다면, 유니티는 따로 'UnityPlayerProxyActivity'를 만들지 않고 플러그인 속에 있는 'UnityPlayerProxyActivity'를 사용합니다.
Android 소스 만들기.
위의 참고 2의 유니티의 성질을 참고 한다면, 빌드시 참고 하는 우선순위는 Plug-in 속에 있는 유니티 관련 데이터 및 코드가 있을 때는 그 것을 참고하고, 없을 때만 생성한다는 것입니다. 그렇다면, 소스를 만들어 그대로 플러그인 속으로 넣어 둔다면, 플러그인 속에 있는 코드로 동작할 것입니다. 물론, 티는 나지 않겠죠. 일단 소스를 만들어 따로 보관합니다. (소스 만드는 법 : http://it-backup.tistory.com/2). 'Build Settings' 창을 불러 Android 코드로 추출해 주세요. 단, Bundle Identifier 값을 바꿔 줘야 오류를 피할 수있습니다. 전 'com.a.test'로 했는 데, 이 글을 보시는 분들도 될 수 있으면 맞춰 주셨으면 좋겠네요.
플러그인 데이터 옮기기.
소스를 만들었다면, 'res'폴더와 'AndroidManifest.xml' 파일을 유니티 'Asset > Plugins > Android' 폴더 속으로 복사합니다.
그리고, Java 파일을 'jar' 라이브러로 만들어 옮김니다. 여기서는 'UnityPlayerProxyActivity.java', 'UnityPlayerActivity.java', 'UnityPlayerNativeActivity.java' 3개의 파일만 'jar'형태의 라이브러리로 만들겠습니다. 해당 java 파일을 선택한 뒤 마우스 오른쪽 버튼을 눌러 팝업 버튼을 호출한 뒤, 'Export...'를 선택해 줍니다.
'Export'창에서 'Java > JAR file'을 선택한 뒤 'Next' 버튼을 클릭합니다.
'JAR Export' 창에서 'Select th export destination' 입력창에, 추출될 파일 명과 경로를 지정해 줍니다. 경로는 현재 작업중인, 유니티의 'Aseets > Plugins > Android' 폴더로 지정해 주시고, 파일명을 Test.jar로 해주세요. 그리고, 'Finish' 버튼을 누릅니다.
그럼 유니티 속 파일은 아래와 같이 되어 있을 것입니다. 기기로 돌려봤을 때 문제 없이 동작한다면, 잘 된 것입니다.
유니티에 안드로이드 통신용 스크립트 추가하기.
유니티에 아래 코드와 같이 스크립트 클래스를 추가하고, GameObject 를 추가한뒤 (게임 오브젝트 이름 또한 GameObject) 스크립트를 추가합니다.
안드로이드 소스에서 'UnityPlayerActivity.java', 'UnityPlayerNativeActivity.java' 모두에 아래 코드를 포함한 뒤, 'jar'파일을 위에 설정한 것과 같이 다시 만들어 줍니다.
이제 실행하면, 메시지를 안드로이드와 유니티가 서로 통신하고 있음을 확인 할 수 있습니다.
'Unity 3D > Android 확장' 카테고리의 다른 글
Unity 3D eclipse로 빌드 하기 (1) | 2013.08.07 |
---|