首先咱们要建立一个android项目html
由于项目须要使用Unity提供的接口,因此须要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder->应用程序->Unity->点击Unity图标,鼠标右键选择“显示包内容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar 。接口包引入工程后,开始编写JAVA代码。java
UnityTestActivity是主Activity,Unity程序一块儿动就会调用这个Activity,它是在AndroidManifest.xml中配置的。它须要继承UnityPlayerActivity,然而它就是刚刚咱们引入的classes.jar包中提供的接口类。UnityTestActivity对外提供了两个方法接口,StartActivity0(String name) 方法与StartActivity1(String name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity。android
接下来就是设置xml文件和布局文件了。对于会android编程的同窗就很熟悉了。编程
把写好的java代码发布成jar包。接下来就建立unity工程,Unity工程中文件夹的结构以下,Plugins->Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹所有拷贝至Plugins->Android文件夹中。最后在Plugins->Android文件夹中建立bin文件夹,而后将刚刚生成的.jar文件拷贝进来,jar的名称能够随便修改,可是jar包里面必须是com->xys->你的class文件,不然运行程序后提示找不到类文件。布局
接下来就是如何在C#中调用android的方法的代码了。3d
加入以下代码。xml
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");htm
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");对象
jo.Call("StartActivity0","第一个Activity");blog
先获得AndroidJavaClass,而后获得AndroidjavaObject就是当前Activity的对象,也就是咱们在上面建立的主UnityTestActivity.JAVA。拿到它的对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数。以下图所示:“第一个Activity”与“第二个Activit”就是我在C#中传递过去的字符串。