Vuforia SDK可以让你从不同的位置加载数据集。 如果您的设备有一个SD卡,您可以将您的设备的数据集(.XML和.DAT文件),在外部存储(SD卡)。 然后,你可以告诉Vuforia从SD卡中加载数据集。
下面的代码片段展示了如何这种方法可以在C#脚本来实现。 在下面的例子中,假设该数据集被称为停机坪。还假设的相关文件(Tarmac.xml和Tarmac.dat)已经被复制到SD卡路径的/ mnt / SD卡/。
using UnityEngine;
using Vuforia;
using System.Collections;
using System.Collections.Generic;
public class SDCardDataSetLoader : MonoBehaviour {
private bool mLoaded = false;
private DataSet mDataset = null;
// Update is called once per frame
void Update () {
if (VuforiaRuntimeUtilities.IsVuforiaEnabled() && !mLoaded) {
string externalPath = "/mnt/sdcard/tarmac.xml";
if (mDataset == null) {
// First, create the dataset
ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
mDataset = tracker.CreateDataSet();
}
if (mDataset.Load(externalPath, VuforiaUnity.StorageType.STORAGE_ABSOLUTE)) {
mLoaded = true;
}
else {
Debug.LogError ("Failed to load dataset!");
}
}
}
}
SD卡路径
确定在上面的代码SD卡位置的路径是 / mnt / SD卡/,该路径应该在大多数设备所接受。 然而,在这情况下,路径不为你工作,SD卡等备用路径也位于:
/sdcard
/storage/sdcard0
使用Application.persistentDataPath
为外部存储路径另一种选择是依赖于统一抽象,它是可访问的用下面的代码:
externalPath = Application.persistentDataPath;
需要注意的是上面的路径指向只有当您启用了您的播放器设置外部写访问外部(SD卡)的位置。 这意味着你已经设置的写入权限=外部(SD卡),而不是使用默认设置,这是写访问=仅供内部使用 。
在外部写访问的情况下,持续数据路径是这样的:
/存储/ sdcard0 /安卓/数据/ + <包名称> + /文件 ///storage/sdcard0/Android/data/ + <package-name> + /files
例如,如果你的包名是com.myorg.myapps,你应该看到:
/storage/sdcard0/Android/data/com.myorg.myapps/files。
因此,基于上述信息,你应该存储你的数据集文件在上述目录中。 例如,对于停机坪上的数据集,则应将数据集文件复制到一个子目录/文件/或到以下目录:
/storage/sdcard0/Android/data/com.myorg.myapps/files/Tarmac.xml
/storage/sdcard0/Android/data/com.myorg.myapps/files/Tarmac.dat