一、新建Android studio工程创建好包名,然后就能下一步了。如下图:
二、新建Module,打jar包的话必须要在Module中进行,创建方式如下图:
2、选择Android Library
3、设定好包名这里我设置和功能名字一样。如果不一样的话,这里包名要和unity中设计包名一致。
三、在新建module中引入jar我使用了万普广告,作为一个接入第三方sdk测试。1、引入jar,将广告sdk的jar和uniyt_class.jar(这个在unity安装目录中)将他们拷贝到unityandroid2(由于功能已经叫这个名字了,所以这里后缀多个2)libs文件夹下
2、引入jar具体步骤参考下图:
四、编写Android代码1、在unityandroid2\src\main\java下写MainActivity.java
public class MainActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppConnect.getInstance("e6dcdc8627afd949b25ad54183a5aea6","APP_PID",this); AppConnect.getInstance(this).initPopAd(this); } public void showAd(){ runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this , "show ad" , Toast.LENGTH_LONG).show(); AppConnect.getInstance(MainActivity.this).showPopAd(MainActivity.this); } } ); } } 五、导出jar1、在unityandroid2\build.gradle中添加
task deleteOldJar(type: Delete) { delete 'release/AndroidPlugin.jar' } task exportJar(type: Copy) { from('build/intermediates/bundles/release/') into('release/') include('classes.jar') rename('classes.jar', 'AndroidPlugin.jar') } exportJar.dependsOn(deleteOldJar, build)然后在Terminal中执行命令gradlew exportJar 如果刚装Android studio需要下载一些组件时间会长些,执行完成后,就会在unityandroid2\release中得到jar. 六、导入unity1、在Assets文件夹下新建Plugins\Android目录,在Android目录下,新建bin文件放引用的jar,包括刚刚导出jar和广告的jar,不包含unity_class.jar。
2、新建AndroidManifest.xml文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas./apk/res/android"> <application android:allowBackup="true"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 3、如果引用到res文件夹下的资源把资源放到Android/res目录中即可。
七、编写unity脚本新建test.cs脚本
public class test : MonoBehaviour {
// Use this for initialization void Start () { AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity"); currentActivity.Call ("showAd"); //调用java中写的方法 } // Update is called once per frame void Update () { } } 八、编译apk1、像正常打apk一样,不过有一点要注意,此时Bundle Identifier与包名要一致。
如果还有问题加我群一起进步: 115136489 点击打开链接
|
|