unity5.6与android交互,Unity5.0与Android交互

这篇博客详细介绍了如何在Unity3D中调用Android Java函数,以及如何从Java调用Unity3D的方法。同时,还涵盖了Unity调用Android原生C函数的过程。步骤包括设置项目、配置图标、修改AndroidManifest等,并提供了关键代码示例。文章最后提到了在构建APK时可能遇到的问题和解决办法,以及NativePlugin的路径放置规则。
摘要由CSDN通过智能技术生成

ccb39ffc928d6acbe8716921ca7d57a2.png

1)Unity3D可调用AndroidJava数组(在.jar中)

2) Java可调用Unity3D函数

3) Unity3D可调用Android C函数(在.so中)

1) Unity5.0

2) JDK:jdk-8u25-windows-i586

3) Android SDK

a3153f0e82e539a1b4fe070b3032bf3a.png

4) Eclipse :adt-bundle-windows-x86中自带的

第一步:

35e323f136523e604f5f9c13f0d1068e.png

第二步:

4c5a84b882d501c8a8a2b50c56e1b7de.png

4011c5cf2a726caab88882eb28cbe752.png

第三步:

b80ea83a19a240e8664abec585a4f554.png

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

第五步:

8c5056b8726573c91596d0ffe74cd3f6.png

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

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

df27d477a74fbaff6a1093613d1b0146.png

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

6a9602c182f191495f686e137d88c6f1.png

90a39811da75ad1bf99b44235909defb.png

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,其导出方法如下图图示:

9568e0c1dc9a6cd5d4ec12fe242cc4da.png

把自己制作的ic_launcher.png覆盖res/drawable-xxx目录中的ic_launcher.png

[java]

CODE_ico.png

ico_fork.svg

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

ff13ecf34bf4fd4ebdfa747129c0f81e.jpg

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

1)bin目录下的plugintest.jar

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

3) 整个res目录

其结果在Unity Project如下图:

652e5b5ea5df876647f32796e3e229f2.png

04a2bfb7a2fa87ab2583ce5776b0bc16.png

[csharp]

CODE_ico.png

ico_fork.svg

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

46dbf1b4e353d09f96debcd7a67d8eb4.png

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_ico.png

ico_fork.svg

全部AndroidManifest如下所示:

[html]

CODE_ico.png

ico_fork.svg

对于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值