ARToolKit for Unity on Android

6 篇文章 0 订阅

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 正常工作(那些没有提到的设置,可以按照用户意愿调整):
  Player Setting
  

  • 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):
  ID
  
  然后,你必须手动修改ARToolKit 自带的Android manifest 文件中的bundle ID。你要找到你的项目文件夹中的 “Assets/Plugins/Android/AndroidManifest.xml”这个文件。用文本编辑器打开它并找到package=”com.mycompany.myapp” 这一行,将等号后面改成在Unity中设定好的bundle ID。
  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”的位置。
  Setting
  
  下一步,在Eclipse 中执行export jar 操作(File->Export)
  
  export
  export2
  
  下面这几个类必须被导出:

  • org/artoolkit/ar/base/NativeInterface.class
  • org/artoolkit/ar/unity/CameraSurface.class
  • org/artoolkit/ar/unity/UnityARPlayerActivity.class

    下面的图片将告诉你如何选择这些类。
      export3
      
      当.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版本中被移除了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值