风林火山阴雷
其疾如风、其徐如林、侵略如火、不动如山、难知如阴、动如雷震。

  1. 首先将build.gardle中将application改为Library

  2. 去掉build.gradle中android{}下的defaultConfig下的applicationId。

  3. 找到unity的classes.jar包。windows下和mac下包的路径分别为
    C:\ProgramFiles\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\classes.jar
    /Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Classes\classes.jar

  4. 新建MainActivity并继承UnityPlayerActivity。

  5. 配置AndroidManifest.xml文件,将Android默认主题去掉,删掉values中style.xml文件,使用系统自带的主题文件。然后并配置ManActivity如下。

  6. 在MainActivity中编写unity调用的方法。

  7. 生成aar包即可。

  8. 在unity中assets目录中,创建Plugins->Android目录,将aar和AndroidManifest.xml放进去。

  9. 在Scripts中创建c#文件。然后,一般调用Android方法如下:

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("showToast", "allow....code:"+code+",msg:"+msg); 

至于c#调用android可以谷歌自行查看。

  1. 在这里使用回调的方式,java中定义一个ResultCallback接口,然后c#也要写一个对应的接口。


    然后传到android调用的方法参数中即可。

    其中
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); 

是固定代码。
jo.call()函数第一个参数是Android调用的方法名,方法必须定义为public,参数为回调函数,Android中对应的java接口回调即可实现。

  1. unity打包事项在File中点击Build Setting。
  2. 选择Android,中点击Player Settings。
  3. 在Other Settings中配置包名,版本号等,最小的API与TargetAPI要与Android中build.gradle中对应。
  4. 在Publishing Settings中配置一下打包签名。
  5. 配置成功后点击Build And Run即可生成apk并运行在Android设备上。

  转载请注明: 码出世界 unity调用Android方法

  目录