- Android plugin for Unity
- Rest API using in C# script
- tutorial links
[Plugin for Android]
대충 정리해 보면
Android 타겟으로 Unity로 게임 개발 시
Unity 내에서 안드로이드 feature를 사용할 수 없는 부분이 있음.
(예, billing, Android system feature 사용 등)
위 문제점을 해결하고자
Android native plugin을 개발해서 Android <-> Unity간 interaction을 만들어 처리해야 한다.
Android native plugin 내에서 사용 가능한 방법은
1. Unity JNI를 이용해서 Android feature를 사용하는 java method를 호출하는 방법
: 반대로 Android side에서는 Unity에서 제공하는 UnityPlayer를 이용해 메세지를 보낼 수 있음.
2. UnityPlayerActivity를 상속받아 method를 override하여 처리하는 방법이 있음.
개발 결과물은
- Unity에서 바로 Android phone으로 deploy할 수 있고
- Android project로 export해서 eclipse에서 deploy할 수 있다.
Building Plugings for Android
Android 타겟으로 Unity로 게임 개발 시
Unity 내에서 안드로이드 feature를 사용할 수 없는 부분이 있음.
(예, billing, Android system feature 사용 등)
위 문제점을 해결하고자
Android native plugin을 개발해서 Android <-> Unity간 interaction을 만들어 처리해야 한다.
Android native plugin 내에서 사용 가능한 방법은
1. Unity JNI를 이용해서 Android feature를 사용하는 java method를 호출하는 방법
: 반대로 Android side에서는 Unity에서 제공하는 UnityPlayer를 이용해 메세지를 보낼 수 있음.
2. UnityPlayerActivity를 상속받아 method를 override하여 처리하는 방법이 있음.
개발 결과물은
- Unity에서 바로 Android phone으로 deploy할 수 있고
- Android project로 export해서 eclipse에서 deploy할 수 있다.
Building Plugings for Android
Unity 공식 문서에서는 Android plugin에서 사용 가능한 두가지 방법을 설명하고 있음.
1. Using Java Plugins
> Script상에서 JNI interface를 사용하여 java code를 직접 호출하여 사용 하는 방법
2. Extending the UnityPlayerActivity Java Code
> UnityPlayerActivity를 상속 받아 Activity 코드에서 Android 관련 처리를 할 수 있도록 하는 방법
Unity로 메세지를 보낼 수 있는 UnitySendMessage method가 있어 참고 하면 될듯.
(다른 것들 도 있으나 어디서 어떻게 사용해야 하는지 잘 모르겠음)
http://blog.naver.com/PostView.nhn?blogId=saram95&logNo=90176732890&parentCategoryNo=11&categoryNo=30&viewDate=&isShowPopularPosts=false&from=postView1. Using Java Plugins
> Script상에서 JNI interface를 사용하여 java code를 직접 호출하여 사용 하는 방법
using UnityEngine; public class NewBehaviourScript : MonoBehaviour { void Start () { AndroidJNIHelper.debug = true; using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { jc.CallStatic("UnitySendMessage", "Main Camera", "JavaMessage", "whoowhoo"); } } void JavaMessage(string message) { Debug.Log("message from java: " + message); } }
2. Extending the UnityPlayerActivity Java Code
> UnityPlayerActivity를 상속 받아 Activity 코드에서 Android 관련 처리를 할 수 있도록 하는 방법
public class OverrideExample extends UnityPlayerActivity { protected void onCreate(Bundle savedInstanceState) { // call UnityPlayerActivity.onCreate() super.onCreate(savedInstanceState); // print debug message to logcat Log.d("OverrideActivity", "onCreate called!"); } public void onBackPressed() { // instead of calling UnityPlayerActivity.onBackPressed() we just ignore the back button event // super.onBackPressed(); } }* 참고로 UnityPlayer에는 사용중인 Activity를 나타내는 currentActivity property와
Unity로 메세지를 보낼 수 있는 UnitySendMessage method가 있어 참고 하면 될듯.
(다른 것들 도 있으나 어디서 어떻게 사용해야 하는지 잘 모르겠음)
: UnityPlayerActivity를 상속 받아 사용 하는 방법에 대한 자세한 설명
- UnityPlayerActivity를 상속한 activity를 가진 Android Project 생성
- library로 만든 후 jar 파일 생성 Unity project에 추가
- Unity project에서 JNI를 통해 Android의 activity의 method 호출
http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_lecture&wr_id=3369&sca=Unity3D¤tId=42
: Android in-app billing 추가 방법
http://it-backup.tistory.com/2
: Unity Project를 eclispe project로 Export하는 방법
[C# plugin for eclipse]
: eclipse용 C# plugin 'Emonic'이 존재
14
|
Emonic is an actual eclipse plugin for C#: http://emonic.sourceforge.net/.
Here's a handy guide for how to get it set up: http://www.ibm.com/developerworks/library/os-eclipse-migratenetvs/
Monodevelop is great, but won't meet your requirement not to have to work in multiple IDEs.
| ||
http://www.ibm.com/developerworks/library/os-eclipse-migratenetvs/
: 'Emonic'을 사용하여 .Net project를 컴파일 하는 방법을 설명
=> eclipse 용 C# plugin을 사용해서 Unity 프로젝트를 빌등 할 수 없는 것으로 보이니 안드로이드 개발자들은 그냥 참고만 하시라...
[Android debuging tip]
http://forum.unity3d.com/threads/70197-Any-tips-for-debugging-Android: Android debugging tip
eriQue
Simply start it like this:
$ adb logcat
and it will start printing out everything that is going on on the device. To limit it to only show the output from inside Unity, you can try this:
$ adb logcat -s Unity
or, to get a little bit more info about what's going on:
$ adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG
If you wish to report a bug or otherwise 'quote' the logcat, you can dump the complete logcat to a file like this:
$ adb logcat -d > logcat.txt