您的位置:首页 > 移动开发 > Unity3D

ARToolKit for Unity on Android

2016-04-04 21:20 555 查看

Android 平台上的ARToolKit for Unity

  为了更好的在Android平台上使用ARToolKit for Unity,请先浏览Getting Started with ARToolKit for Unity这篇文章。

开发环境需求

你必须拥有Unity 的Android Pro 许可才可以将ARToolKit for Unity 添加到你的项目中。

运行设备的系统必须在Android 2.3.1版本 (API Level 9)或以上,如果你仅仅使用Square Marker,系统需求降为Android 2.2(API Level 8)或以上。

Player 设置

  当你将应用发布到Android 系统时,有一些Player 设置必须要进行配置才能让ARToolKit for Unity 正常工作(那些没有提到的设置,可以按照用户意愿调整):

  


  

Resolution and Presentation 界面

Orientation: “Landscape Left”必须这样才能保证动态影像能够与屏幕匹配。

Use 32-bit Display Buffer:True

Other Settings 界面

Bundle Identifier:ARToolKit for Unity 在Android 平台上拥有它自己的AndroidManifest.xml文件。在这个manifest文件中的bundle identifier 被设定为“com.mycompany.myapp”。注意:这个bundle identifier 在应用打包前必须修改成与你在player设定中的bundle identifier 值相同。查看后面的介绍来学习如何修改它。

Minimum API Level:“Android 2.3.1 ‘Gingerbread’ (API Level 9)”或更高,但是当你仅仅使用Square marker的时候可以设置为“Android 2.2 ‘Froyo’ (API Level 8)”或更高。

Graphics Level:OpenGL ES 2.0

Internet Access:“Require”

设置Bundle Identifier

  所有Android 平台的应用通过唯一的bundle identifier 进行区分。ARToolKit 为Android 平台提供了一个默认的“com.mycompany.myapp”作为bundle identifier,但是在发布应用之前,这个值必须做出修改。

  

  要注意,当你使用ARToolKit for Unity 时,有两个地方的bundle ID 需要修改:一个在Unity 中的Player 设置中,另一个在“Assets/Plugins/Android/AndroidManifest.xml”这个文件中。

  

  首先在Unity 中设置bundle ID(使用你选择的ID来代替com.mycompany.myapp):

  


  

  然后,你必须手动修改ARToolKit 自带的Android manifest 文件中的bundle ID。你要找到你的项目文件夹中的 “Assets/Plugins/Android/AndroidManifest.xml”这个文件。用文本编辑器打开它并找到package=”com.mycompany.myapp” 这一行,将等号后面改成在Unity中设定好的bundle ID。

  


在大型的Android 项目中使用ARToolKit for Unity

  通过修改ARToolKit for Unity 的Java 部分来将其融合到大型Android 应用或是对其进行自定义都是可行的。

  

  Unity for Android 提供了最外部的Activity 子类(UnityPlayerActivity)的源码。ARToolKit for Unity 又在它的基础上创建了一个名为UnityARPlayerActivity 的新子类。这个类已经被打包为UnityARPlayer.jar 文件并存储在项目的 Assets/Plugins/Android/路径下。它将在最后打包时被Unity 连接到apk 中。我们也提供了UnityARPlayerActivity 类的源码。你可以在ARToolKit for Unity 的extras/Android UnityARPlayer source/ 目录下找到源码。

  

  下面的几个图片将展示如何将源码打包为.jar 文件。

  

  首先,确保项目已经正确的设定了“android.jar”(该文件在Android SDK中)和Unity 提供的“classes.jar”的位置。

  


  

  下一步,在Eclipse 中执行export jar 操作(File->Export)

  

  


  


  

  下面这几个类必须被导出:

org/artoolkit/ar/base/NativeInterface.class

org/artoolkit/ar/unity/CameraSurface.class

org/artoolkit/ar/unity/UnityARPlayerActivity.class

下面的图片将告诉你如何选择这些类。

  


  

  当.jar 文件被导出后,将其放到Unity 项目的Assets/Plugins/Android/UnityARPlayer.jar 这个位置。

附录

  为什么NFT 只有在API 9以上才能使用?因为在Android 系统2.2.x版本以及之前版本中,嵌入在.apk 中的.jar 文件处理压缩资源的缺陷导致所有压缩资源的文件大小不能超过1MB(即使在一些2.2系统版本中,这个限制可以被厂商调高)。 这也给在Android 2.2 系统上使用的NFT 数据强加了一个1MB的文件大小限制。这个限制在Android 2.3版本中被移除了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity android ARToolKit