참고 :
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에서 블루투스 사용하는 방법을 알아 보았다.
'게임 > Unity3D' 카테고리의 다른 글
[Unity] Google Service Play 에서 ERROR_UI_BUSY 에러 해결법 (0) | 2017.10.15 |
---|---|
[Google Play Service][Unity] Unity에서 구글 로그인 인증 구현하기(+로그인 실패 해결하기) (0) | 2017.10.10 |
[Unity3D/Android] Unity에서 Android 모듈 사용하기(.jar 대신 .aar 사용) (2) | 2017.09.23 |
[Unity] ContentSizeFitter를 사용해 TextMesh 크기를 자동으로 텍스트에 맞춰 조절하기 (3) | 2017.02.27 |
[Unity] OnBecameVisible 함수로 카메라에 보이는 오브젝트 체크하기 (0) | 2017.02.08 |
[Unity] Collision detection과 Rigidbody의 부모/자식 오브젝트 관계에서의 주의사항.. (1) | 2017.02.07 |
[Unity] UnityEngine.Random.Range의 max값.. (0) | 2017.02.06 |
[unity] CollisionEnter 주의사항. Child Parent 관계.. (0) | 2017.02.05 |
[Unity][C#] OdbcException: ERROR [IM002] [Microsoft][ODBC 드라이버 관리자] 데이터 원본 이름이 없고 기본 드라이버를 지정하지 않았습니다. (2) | 2016.09.18 |
[Unity] IsPointerOverGameObject: UI 클릭 시 게임오브젝트도 클릭될 때 사용 (0) | 2016.08.28 |