게임/Unity3D

[Unity/Android] Unity Bluetooth on Android with making Java Plugin

Binceline 2017. 9. 18. 02:30

참고 :

http://sillyknight.tistory.com/27

http://yeonhong.blogspot.kr/2015/04/unity3d-native.html

http://blog.naver.com/PostView.nhn?blogId=linegamedev&logNo=220104074319




1) 새로운 Unity Project를 생성한다.


2) 유니티 프로젝트 폴더에 Android Studio Project를 생성한다.

-> 어차피 Library 모듈 프로젝트만 사용할 것이므로 그냥 다 확인 눌러서 만든다.


3) new -> module 해서 Android Library 프로젝트를 생성한다. 

-> 난 bluetoothforunity 라고 지었당.

-> 패키지명 자유롭게 짓는다.


4) Unity 안드로이드 버젼을 설치하면 생기는 classes.jar 파일을 모듈 경로의 libs 폴더에 옮긴다.


5) UnityPlayerActivity를 상속받는 Activity class를 만든다.  

- 난 BluetoothActivity라고 지었다.

- UnityPlayerActivity는 유니티 자체의 Main Activity이다. 이걸 상속받아서 확장한다.


6) BluetoothService라는 class를 만들어 Android/Java로 블루투스 코드를 작성한다.


7) 모듈 프로젝트의 build.gradle에 하단에 다음처럼 작성하고 sync를 맞추면 

우측 gradle task 목록에 exportJar task가 생성된다. 이걸 더블클릭하여 실행한다.


- 저렇게 하게 되면 경로에 AndroidPlugin.jar 파일이 생성된당.


8) AndroidManifest.xml 파일을 작성해야 한다.

- [package명 / activity명] 은 자신이 정했던 이름으로 작성해 주어야 한다.

- 최하단에 Bluetooth 사용 권한을 허가해 주는 명령어가 있다.


9) 유니티 프로젝트 폴더의 Plugin/Android 폴더에 AndroidManifest.xml 파일을 복사&붙여넣기 한다.

- 이제 이 폴더에는 AndroidManifest.xml과 AndroidPlugin.jar 파일이 존재하게 된다. 이로써 준비 끝!


- 이렇게 블루투스 테스트를 하기 위한 UI를 제작해 준다.


10) C# code 작성

- 이렇게 Plugin의 클래스 코드를 사용한다.

* AndroidJavaObject : 객체로써 불러온다. Call() 함수 사용 가능

* AndroidJavaClass : 클래스로써 불러온다. 이걸로 생성하게 되면 객체가 아닌 상태로 사용하게 된다. 즉 CallStatic() 함수로 static 변수나 함수 등만 이용 가능하다.


11) C# code와 UI를 연결해 준다.

12)  Player Setting 메뉴에서 사용할 package명을 입력한다.


13) Scene을 등록하고 build & run을 한다.

- 당연히 Android 스마트폰은 연결되어 있어야 한다.


14) 버튼을 눌러 확인해 본다.

- 블루투스 페어링 리스트를 가져와 출력한 모습. 글자가 너무 크당.




이런 식으로 Unity Android에서 블루투스 사용하는 방법을 알아 보았다.


반응형