1)Unity3D可调用AndroidJava数组(在.jar中)
2) Java可调用Unity3D函数
3) Unity3D可调用Android C函数(在.so中)
1) Unity5.0
2) JDK:jdk-8u25-windows-i586
3) Android SDK
4) Eclipse :adt-bundle-windows-x86中自带的
第一步:
第二步:
第三步:
第四步: Configure Laucher Icon,不做任何更改,不要把你的Image File在这里加入,它会试图更改Image File的尺寸,在上面把它直接放在res/drawable即可。
第五步:
第六步:Blank Activity采用默认值即可。
第七步:删除以下红色标记部分
注:若其基类不是Activity,则在上面PlugInTest上点右键jarisplayer 加载,然后选择Properties,进入如下界面:
1) 其中定义了UnityPlayerActivity,其源码位置:
C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\com\unity3d\player)
2) classes.jar位于:C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\release\bin,其导出方法如下图图示:
把自己制作的ic_launcher.png覆盖res/drawable-xxx目录中的ic_launcher.png
[java]
packagecom.example.plugintest;importandroid.app.Activity;importandroid.os.Bundle;importcom.unity3d.player.UnityPlayerActivity;publicclassMainActivityextendsUnityPlayerActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);}//onlyfortest,C#inunitywillcallitpublicintGetInt(){return1000;}}
1)进入PlugInTest的Properties中jarisplayer 加载,并勾选“Is Library”
2) Project->Clean
3) Project->Build Project
4) 生成的plugintest.jar见bin目录
把下面内容都于Unity Project的“Assets\Plugins\Android”目录中。
1)bin目录下的plugintest.jar
2)bin目录下的AndroidManifest.xml (可按照需要提高其他的Activity或权限)
3) 整个res目录
其结果在Unity Project如下图:
[csharp]
usingUnityEngine;usingSystem.Collections;publicclassAndroidTest:MonoBehaviour{//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){AndroidJavaClassjc=newAndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObjectjo=jc.GetStatic("currentActivity");Debug.Log("*********JerryTest*********"+jo.Call("GetInt"));}}
UnityEngine.AndroidJavaClass与java.lang.Class及其子类对应。
UnityEngine.AndroidJavaObject与java.lang.Object及其子类对应。
File->Build Run
当导出apk时,可能遭遇以下的问题:
Unable to find unity activity in manifest. You need to make sure orientation attribute is set to fullSensor manually.
需在AndroidManifest中增加一行:
[html]
全部AndroidManifest如下所示:
[html]
对于Android系统(armv7,x86)的Native Plugin, lib*.so应放于下面目录中:
1)X86平台: Assets/Plugins/Android/libs/x86/
2)armv7平台:Assets/Plugins/Android/libs/armeabi-v7a/
参考:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-143163-1.html