跟着新总学习了sdk的接入,心得一点点整理下哈。
1、在Eclipse新建一个工程,然后将unity的自带lib,data/playbackEngines/adnroidplayer/release/bin/classes.jar(5.0版本的文件路径)拷贝到工程的lib下。
2、MainActivity 要extend UnityPlayerActivity
3、新建一个方法如
public int test (int flag)
{
Log.i("test","flag = "+flag);
return 150831;
}
4、可以命令打包jar;
使用代码
jar cvf test.jar ./com
当然也可以直接用Eclipse的Export来导出。
(在bin路径下)在com下新建cmd文件,执行代码就可以了(只需要打包一个MainActivity)(如果存在多余文件就清掉);
然后将jar文件放在Unity中的Plugins/Android/bin目录下
5、然后将AndroidManifest与res文件夹放在Plugins/Android下
6、宏定义:
#if UNITY_ANDROID
#endif
7、在unity的脚本添加调用Android的方法
AndroidJavaClass jc = null;
AndroidJavaObject jo = null;
void Awake() {
#if UNITY_ANDROID
if (jc == null) {
jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
#endif
}
8、调用Android方法
(1)直接调用Call
if (jo != null) {
jo.Call<int>("test",150);//test是方法名,150是传值
}
(2)需调用ui线程的情况 if (jo != null)
{
jo.Call("runOnUiThread", new AndroidJavaRunnable(
() =>
{
jo.Call<int>("test",150);
}
));
}
9、在Unity里把脚本挂在GameObject上。打包输出测试。