Unity5.0与Android交互

电脑杂谈  发布时间:2020-03-06 05:01:20  来源:网络整理

js 同步加载 异步加载_无法加载flash_jarisplayer 加载

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中自带的

第一步:

第二步:

jarisplayer 加载_js 同步加载 异步加载_无法加载flash

第三步:

第四步: Configure Laucher Icon,不做任何更改,不要把你的Image File在这里加入,它会试图更改Image File的尺寸,在上面把它直接放在res/drawable即可。

第五步:

第六步:Blank Activity采用默认值即可。

第七步:删除以下红色标记部分

注:若其基类不是Activity,则在上面PlugInTest上点右键jarisplayer 加载,然后选择Properties,进入如下界面:

jarisplayer 加载_js 同步加载 异步加载_无法加载flash

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]在CODE上查看代码片派生到我的代码片

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目录

js 同步加载 异步加载_无法加载flash_jarisplayer 加载

把下面内容都于Unity Project的“Assets\Plugins\Android”目录中。

1)bin目录下的plugintest.jar

2)bin目录下的AndroidManifest.xml (可按照需要提高其他的Activity或权限)

3) 整个res目录

其结果在Unity Project如下图:

[csharp]在CODE上查看代码片派生到我的代码片

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及其子类对应。

无法加载flash_jarisplayer 加载_js 同步加载 异步加载

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]在CODE上查看代码片派生到我的代码片

<meta-dataandroid:name="unityplayer.UnityActivity"android:value="true"/>

全部AndroidManifest如下所示:

[html]在CODE上查看代码片派生到我的代码片

<?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

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 王媛媛
        王媛媛

        欧盟绝对不会放过这个机会正式转正

      • 格普
        格普

        四倍音速的鹰击导弹也部署南海

      热点图片
      拼命载入中...