【发布时间】:2015-11-04 09:45:49
【问题描述】:
我对包含以下三个文件的 unity classes.jar 感到很困惑:UnityPlayerActivity、UnityPlayerNativeActivity、UnityPlayerProxyActivity。
您能帮助我了解它们的工作原理吗?它们有什么功能?
如果我通过统一编辑器在清单上将活动设置为 UnityPlayerActivity,为什么 Android 可以找到我的插件?
【问题讨论】:
我对包含以下三个文件的 unity classes.jar 感到很困惑:UnityPlayerActivity、UnityPlayerNativeActivity、UnityPlayerProxyActivity。
您能帮助我了解它们的工作原理吗?它们有什么功能?
如果我通过统一编辑器在清单上将活动设置为 UnityPlayerActivity,为什么 Android 可以找到我的插件?
【问题讨论】:
Activity 类似于 main() 函数 - 它是一个入口点。它表示具有用户界面的单个屏幕,就像用户与应用交互的窗口或框架一样。
检查一下: https://www.tutorialspoint.com/android/android_acitivities.htm https://developer.android.com/reference/android/app/Activity.html
原生活动是纯粹用原生代码实现的活动。 Android NativeActivity https://developer.android.com/reference/android/app/NativeActivity.html
UnityPlayerActivity - 扩展 Android 的 Activity。
(已弃用)UnityPlayerNativeActivity - 扩展 NativeActivity。
(已弃用)UnityPlayerProxyActivity - 用作代理层以在 NativeActivity 和 Activity 之间自动切换。并选择了其中之一。
从 Unity 5 开始,UnityPlayerActivity 是默认调用类。
当 UnityPlayerActivity 被调用时,它会启动 UnityPlayer 活动which is nothing more than a FrameLayout that holds the SurfaceView where-with the help of OpenGL the actual game or app created in Unity will be drawn later on.
https://android.jlelse.eu/unity-and-android-connecting-the-dots-6368b31e86c5 - 强烈推荐这篇文章来了解 Unity 如何连接到 Android。
UnityPlayerNativeActivity 是 Unity 4.5 和 4.6 中的默认活动。但是有不好的实现问题,所以再次切换到 Activity 。
要查看 Activity 和 NativeActivity 之间的差异,请查看 Android 文档中的差异。以及下一篇有趣的文章:
http://answers.unity3d.com/questions/853012/regarding-unitys-main-android-activity.html
Native Activity vs SDK Activity in terms of U.I
UnityPlayerProxyActivity - 是一个代理,在 Unity 3.x 中用于根据设备功能在 NativeActivity 和 Activity 之间切换。 但现在,它不再使用了。
https://forum.unity.com/threads/androidmanifest-com-unity3d-player-unityplayerproxyactivity.285973/
【讨论】: