유니티에서 네이티브와 서로
연결하기 위해서 플러그인 이라는걸
만들어서 사용하는데요.
지금까지는 이걸 이클립스(Eclipse)로
만들어서 사용하고 있었는데...
몇일전에도 포스팅 했지만
http://lhh3520.tistory.com/309
푸시나 인앱 등등이 점점
Android Studio
로 대응해주는 것 같아서
하루라도 빨리 옮기는게 맞다고
생각했습니다.
어쨌든 각설하고
이번 포스팅은 유니티에서
사용할 플러그인을
Android Studio를
이용해서 만드는 방법에 대한
포스팅 입니다.
먼저 안드로이드 스튜디오를
열고 아래 빨간색 부분을 통해
새로운 프로젝트를 만듭니다.
그다음
프로젝트 정보를 입력해 줍니다.
[ 1 ]
프로젝트 이름
[ 2 ]
회사 도메인
[ 3 ]
패키지 이름
( 이걸 나중에 유니티에 적어 줘야함 )
여기서 저는 패키지 이름을
com.Company.ProductName
으로 사용할 예정입니다.
물론 유니티 기본 패키지 이름이라
적용이 안되기 때문에 다른 패키지
이름을 사용하셔야 합니다.
그다음
안드로이드 최소버전
설정등 기타 설정을 합니다.
그다음
액티비티를 설정 합니다.
네이티브에 사용될 기본 액티비티가
필요하므로 일단은
Blank Activity
를 선택합니다.
그다음은
액티비티의 정보들을 입력해 줍니다.
전 귀찮으므로..
그냥 패스.
Finish 를
누르고 아래같은 화면이
나오면서 프로젝트가
생성됩니다.
그다음 프로젝트 폴더로 가서
app -> libs
폴더로 이동합니다.
위의 경로로
유니티의 Jar 파일을 가지고
와야 합니다.
classes.jar 파일의 경로는
Unity/Contents/PlaybackEngines/AndroidPlayer/Variations/(il2cpp or mono)/Development/Classes
에 가면 있습니다.
( Mac 기준 )
Unity 폴더는 응용 프로그램에서
Unity 를 선택하고 아래처럼
패키지 내용 보기를 누르면 됩니다.
classes.jar 파일을 가지고
온 다음에 다시 안드로이드 스튜디오로
돌아와서 왼쪽 윗부분에서
Open Module Settings
로 들어 갑니다.
그다음 위쪽 탭에서
Dependencies
를 클릭 합니다.
그다음 아래 빨간색 부분처럼
File dependency
를 클릭해 줍니다.
그다음 아까전에 classes.jar 파일을
복사한 libs 폴더안에
classes.jar
파일을 선택한다음 완료합니다.
그다음 아래 빨간부분의
build.gradle
파일을 엽니다.
파일을 열면
아마 이런식으로 적혀 있을 겁니다.
이부분을 아래처럼
변경해 줍니다.
그다음
화살표 방향에 있는
Sync Now 를
눌러서 싱크를 맞춰줍니다.
( 에러가 안나야지 정상 입니다. )
그다음
app -> java
폴더안에 있는
MainActivity
파일을 열어 줍니다.
파일을 열면 아래같이
코드가 젹혀 있는데요.
이부분을 아래처럼 바꿔줍니다.
아주 간단히만 바꾸도록 하겠습니다.
그다음 오른쪽 끝에보면
Gradle
이라는 탭이 있는데 이걸
클릭해서 열어 줍니다.
그다음
app -> Tasks -> other
부분의 탭들을 열어 줍니다.
아래로 내리다보면
exportJar
라는게 보이는데.
이걸 더블클릭해서 빌드 합니다.
빌드를 하면 뭔가 주르륵
나오면서 아래처럼
BUILD SUCCESSFUL
이라고 나오면서 Jar 파일이
빌드 됩니다.
다시 프로젝트 폴더로 간다음
app -> release
폴더로 가면 Jar 파일이
만들어진걸 볼 수 있습니다.
그다음
유니티에서
Assets -> Plugins -> Android
폴더를 만든다음에 그 안에
app -> src -> main
에 있는 매니패스트 파일과
방금 만들어진 Jar 파일을
복사해 줍니다.
그다음 매니페스트 파일을
아래같이 수정해 줍니다.
그다음
매니페스트에 적혀있는
패키지명을 복사해서 유니티의
File -> Build Settings -> Player Setting 로
들어가서 아래 빨간색 부분에
복사해 줍니다.
그다음 스크립트를 하나 만들어 줍니다.
그다음
아래같이 간단히 코드를 적은다음에
Main Camera 에
붙여 넣어 줍니다.
그다음 APK 를 빌드한다음에
실행하면 아래처럼 OnCreate 에서
제대로 로그가 찍히는걸 볼 수 있습니다.
여기까지 해주시면 됩니다.
이상 안드로이드 스튜디오를
이용한 유니티 플러그인 만들기
였습니다.
[ 참조한 동영상 ]
https://www.youtube.com/watch?v=1i4I-Nph-Cw
공감과 댓글은
많은 힘이 됩니다.
'Programming > Android' 카테고리의 다른 글
| [Android] 안드로이드 디바이스 고유넘버 (UUID) 얻어오는 방법 (0) | 2015.11.12 |
|---|---|
| [Android] 안드로이드 스튜디오를 이용해 AAR (.aar) 라이브러리 파일 만드는 방법 (4) | 2015.10.26 |
| [Android] 안드로이드 스튜디오를 이용해 유니티(Unity) 플러그인 만드는 방법 (32) | 2015.10.13 |
| [Android] 이클립스(Eclipse) 프로젝트를 안드로이드 스튜디오 프로젝트로 변환하는 방법 (0) | 2015.10.08 |
| [Android] 안드로이드 특정 연락처 정보 수정하는 방법 (1) | 2015.07.24 |
| [Android] 안드로이드 핸드폰 연락처 리스트 정보 가지고 오는 방법 (3) | 2015.06.26 |
꿀같은 정보 감사합니다 정말 도움이 되네용~~
감사합니다. 너무 친절하게 설명해주셔서 도움이 많이 되었습니다.
좋은 정보 감사합니다. 도움 많이 받고 갑니다.
좋은 정보 감사합니다. 덕분에 문제를 해결했습니다.
그런데 혹시 유니티 플젝트의 bundle identifier를 꼭 jar파일의 패키지 네임과 맞춰서 써야 하나요?
bundle identifier를 다르게 써도 되는 방법이 있으면 알려주셨으면 합니다.
유용한 정보 정말 고맙습니다.
몇가지 질문이 생각났으나 해보면 결과를 알수 있을 것 같아 참아봅니다 ^^
우와 감사합니다. 정말 깔끔하고 알기 쉽게 잘 정리해 주셨네요..
많은 도움 받고 갑니다. 감사합니다.
지도api를 유니티에 연동하고싶은데요...
지도를 띄우는 프로젝트의 mainactivity에서 fragmentActivity를 상속받는데 UnityplayerActivity를 상속하면 이 지도는 띄울수없는건가요?? ㅠㅠ
비밀댓글입니다
비밀댓글입니다
비밀댓글입니다
안녕하세요. 포스팅 잘 봤습니다.
덕분에 안드로이드 스튜디오와 유니티 연동을 간단히 할 수 있었습니다.
하지만 한가지 문제가 있는데요. 구글 플레이(play-services 통합) 을 사용하려고 하는데
아무리 build.gradle에서 compile, classpath를 설정해주어도 .jar를 만들고 나면
유니티에서 구글api는 못읽더라구요ㅠㅠ 전처럼 라이브러리를 넣는것도 아니고..
혹시구글api의 경험도 있으신지요? ㅠㅠ
우와! 진짜 진짜 고생하셨습니다!
어찌 이 감사를 전해야 할지.. ㅜㅠ
즐겨 찾기 해서 자주 들리겠습니다 : )
좋은 소통 기대하겠습니다!
정보 감사합니다 한여름 잘 보내셔요 ^^*
비밀댓글입니다
안녕하세요 포스팅 보고 따라는 초심자입니다.
네이티브 연동을 위해서 코드를 작성중인데요
제가 하는것이 측정모듈에서 측정값을 계산해서 블루투스를 통해서 안드로이드로 보내고 안드로이드에서 db로 해당값을 저장 및 유니티로 보내주면 유니티에서 해당 값을 받아서 로테이션으로 회전을 시키는 시나리오인데요.
여기 안드로이드에서 UnityPlayer.UnitySendMessage를 통해서 유니티로 해당값이 보내는 코드를 작성을 하고 다음과 같은 로그 출력이 되었습니다.
'Native libraries not loaded - dropping message for Cube.GetSenderKey '
출력이 되서 확인 해보니까 jar파일 없어서 만들려고 하는데요.
파일을 만들어서 안드로이드에서 유니티로 해당값을 받을수 있게 할려고 하는데 어떻게 값을 받아야 되는지 감이 안잡혀서 질문 드립니다.