Unity3d 对接android SDK
从Unity3D到Android工程
为了实现交互,我们采用的是简单的函数相互调用。如果我们在Unity3D中想调用Android代码,那么可以在脚本文件C#中这样写:
AndroidJavaClass jc =newAndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity= jc.GetStatic("currentActivity");
activity.Call("UnlockGame")
代码注释:
1.第一行 构造了"com.unity3d.player.UnityPlayer"类的一个对象
2.第二行 获取了本类的静态成员"currentActivity"
3.第三行 取得了activity就可以调用Android代码了 这个UnlockGame函数是简单的成员方法,一般直接写在MainActivity中
Android 调用Unity3D 的方法
UnityPlayer.UnitySendMessage("AndroidManager", "AndroidCallBackUnlockGame", "");
Android中调用Unity中的方法 “AndroidCallBackUnlockGame”
三个参数表示的意义:
第一个参数Unity3D 中的某个GameObject
第二个这个Gameobject 上的脚本的某个方法AndroidCallBackUnlockGame
第三个 AndroidCallBackUnlockGame这个方法的参数
Unity3D 中同时调用多个jar工具
Unity程序一起动就会调用这个Activity,它是在AndroidManifest.xml中配置的。它需要继承UnityPlayerActivity,如果同时需要启动多个插件工具时需要注意下面几个方面的内容:
1.如果启动的插件没有其他的任何依赖项可以使用静态方法直接用
publicvoidStartActivity1(Stringname)
{
Intent intent=new Intent(mContext,TestActivity1.class);
intent.putExtra("name",name);
this.startActivity(intent);
}
2. 如果有依赖项 可以用要启动的Activity 继承 主Activity 然后把要启动jar包需要的内容添加到 主Activity
网友评论