les*_*hka 47 java-native-interface plugins android unity-game-engine
我需要创建一个Android应用程序,它包含在Unity3d(动画等)和AndroidSDK上编写的部分(通过androidSDK,我的意思是很少用java,manifest和资源编写的活动)
事实上我已经有了这些部分(至少模拟已经准备好了=))我无法弄清楚如何在它们之间进行通信.
我已经阅读了很多关于unity3d android集成的文章(主要是关于称为"插件"的东西)并且无法理解这个人员的工作原理=(我理解的主要内容(每个人都知道官方参考文章写过)是关于插件的文档非常差... =)
我能理解的唯一通信方式是使用unity3d脚本(使用AndroidJavaClass和AndroidJavaObject)进行意图(广播),这样我的活动(用java编写)就可以处理它.但有些东西告诉我这不是最好的解决方案......
我读到的问题是我需要使用JNI(这是java本机接口 - 为什么?!? - 为什么我需要使用本机代码?)
我是否需要在java上创建一些中级代码,目的是与我的java活动进行通信,使用AndroidNDK编译它并作为插件包含在我的Unity3d项目中?我怎么能写中间层呢?我是否需要使用UnityPlayer而不是"Activity"作为基类?为什么?
spa*_*nia 36
Here is a tutorial on the basics of running Unity inside of a normal Android app.
在Android视图中运行Unity有很棒的教程.启动并运行后,您可以轻松地在应用程序的任何位置嵌入场景.
当您需要从Unity调用Java Android应用程序时,您可以添加以下代码:
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过AndroidJavaObject活动调用您想要的任何活动方法.像这样的东西:
activity.Call("yourFunctionName", parameters);
Run Code Online (Sandbox Code Playgroud)
要在Android上完全支持,您不需要在java上创建一些中级代码.
相反,你应该:
此方法有助于编写推送通知,应用计费等...
Ref#here:http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html( - >扩展UnityPlayerActivity Java代码)
此外,通过使用以下代码:
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("yourFunctionName", parameters);
Run Code Online (Sandbox Code Playgroud)
您可以在Unity上使用Android完成大部分神奇的事情
注意*:yourFunctionName必须在主活动中实现,该活动从UnityPlayerActivity扩展(请参阅步骤2)
问候,
| 归档时间: |
|
| 查看次数: |
31633 次 |
| 最近记录: |