平台需求¶
平台支持¶
请参考 EasyAR Sense 平台要求 以及 Unity System requirements 。
关于 Android arm64-v8a
Unity使用的mono脚本后台不支持Android arm64-v8a。如果需要使用应开启IL2CPP。
关于 iOS armv7
EasyAR Sense 从3.0版本开始终止了对iOS armv7的支持。在库文件中存在空的代码层以确保 XCode 工程始终可以构建,但如果编译时只选择了armv7运行后功能将无法使用。
Unity兼容性¶
EasyAR Sense Unity Plugin需要使用 Unity 2019.4 或更高版本。
Unity > 2019.4 的兼容性,
通常来说, EasyAR Sense不依赖很多变化的Unity API,所以如果Unity发布了新版本,EasyAR Sense Unity Plugin一般都可以正常使用。
Unity 2020.2 或更高版本 删除了iOS设备的OpenGLES支持,在这些版本中,视频录制功能将无法在iOS设备上使用。
Unity < 2019.4 的兼容性,
为了提供更好的插件包体验以及支持最新的Unity XR工作流,我们在持续迁移我们的资产文件和脚本到 Unity 2019.4。这会逐渐打破对老版本Unity的兼容性。如果你由于某些原因仍就在使用老版本的Unity,可以尝试从 tgz
包中解压文件,放在工程的 Assets
目录,然后解决使用过程中出现的错误。对于这种用法我们不会提供官方支持,但有一些建议可以参考:
Unity 2019.3: 看上去插件可以在这个版本的Unity上正常工作,因为Unity 2019.3 和 2019.4的差异有限。这个兼容性并不是在设计中的,新的版本可能无法正常工作。
Unity 2019.2: 看上去插件可以在这个版本的Unity上正常工作,你可能需要手动修改package manifest,以添加tarball到工程中。这个兼容性并不是在设计中的,新的版本可能无法正常工作。在Windows上,由于Unity对路径长度限制的不当处理,插件的样例可能无法正常导入,你可以通过文件系统直接复制样例文件到
Assets
文件夹中。Unity 2019.1: 这个版本的Unity Package Manager UI看起来并不能很好的支持tgz文件。你可以尝试embed插件包,如果这样也不能使用,打破包的封装,将文件直接解压到
Assets
文件夹中。Unity 2018.4: 这个版本的Unity Package Manager UI不支持sample。并且由于插件使用 Unity 2019.4打包,一些重要文件的 meta文件无法正常工作。你需要打破package封装,将文件直接解压到
Assets
文件夹中。在重新构建meta文件后,可能可以让大部分功能正常工作,但这并未经过测试。Unity 2017 或 Unity 5: 在这些版本中不存在Unity Package Manager。并且一些兼容这些版本的代码路径已经被删除。你可能需要花更大的力气才能使插件在这些版本中正常使用。
.NET API 兼容性¶
EasyAR Sense Unity Plugin兼容 .NET Standard 2.0 API。
Graphics API¶
从EasyAR Sense 3.0开始,EasyAR Sense Unity Plugin 直接使用Unity的渲染管线,所有Unity中可以使用的图形API都可以天然被支持。
特例:由于EasyAR Sense的内部实现,录屏功能将只能在某些特定条件下工作,即在Android上Graphics API是OpenGLES2或OpenGLES3的情况以及在iOS上Graphics API是OpenGLES2的情况。
Scriptable Render Pipeline¶
Unity的 Scriptable Render Pipeline 允许你在C#脚本中控制渲染。EasyAR Sense Unity Plugin默认不支持Unity Universal Render Pipeline (URP) (某些版本中的 Lightweight Render Pipeline (LWRP)) 以及 High Definition Render Pipeline (HDRP)。我们计划在今后的版本中添加对这些管线的支持。
在官方支持发布前,你可以通过扩展EasyAR Sense Unity Plugin的脚本来支持URP和HDRP。所有的渲染API调用都组织在CameraImageRenderer脚本组件中。你可以扩展这个脚本并修改一些shader来支持URP和HDRP。
Unity自身的限制¶
关于 Android arm64-v8a
Unity使用的mono脚本后台不支持Android arm64-v8a。如果需要使用应开启IL2CPP。
Mono 脚本后端支持
iOS: 不支持(由于Unity不支持64位Mono backend)
Android: 支持(仅armv7)
IL2CPP 脚本后端支持
iOS: 支持
Android: 支持