
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<它的基类是Activity>,其源码位置:
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<AndroidJavaObject>("currentActivity");Debug.Log("*********JerryTest*********"+jo.Call<int>("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]
<meta-dataandroid:name="unityplayer.UnityActivity"android:value="true"/>
全部AndroidManifest如下所示:
[html]
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="cn.toltech.game.doubleboats"android:versionCode="1"android:versionName="1.0"><supports-screensandroid:smallScreens="true"android:normalScreens="true"android:largeScreens="true"android:xlargeScreens="true"android:anyDensity="true"/><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="21"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@android:style/Theme.NoTitleBar"><activityandroid:name="com.example.plguintest.MainActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter><meta-dataandroid:name="unityplayer.UnityActivity"android:value="true"/></activity></application></manifest>
对于Android系统(armv7,x86)的Native Plugin, lib*.so应放于下面目录中:
1)X86平台: Assets/Plugins/Android/libs/x86/
2)armv7平台:Assets/Plugins/Android/libs/armeabi-v7a/
参考:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-143163-1.html
关键是远程的数量
四倍音速的鹰击导弹也部署南海
欧盟绝对不会放过这个机会正式转正