AR项目中如何从SD卡中加载数据集

    xiaoxiao2025-01-07  18

    Hello,我是KitStar。

    我是学习Unity的一名初级程序员。如果,一下文章整理的不对。还请见谅。

    首先,我们先了解一下AR的数据集(DataSet)。

    1.

    在我们使用Vuforia的AR sdk来开发项目的时候。会先去官网上传并下载需要识别的图片的一些信息。把下载的unitypackage文件导入你的Unity项目中后,会得到以下两个文件夹:里面的具体内容如下图显示:

    如图所示:Editor中存储的重要就是你要去识别的文件。而StreamingAssets文件夹中储存的就是这些图片的识别信息(在后缀为.dat中),以及配置信息(在后缀为.xml中)

    。而我们说的数据集主要就是StreamingAssets文件夹里面的文件了。

    2.

    现在我们就开始用代码告诉大家怎么在SD卡中加载数据集了。

    代码如下:

    using UnityEngine; using Vuforia; using System.Collections; using System.Collections.Generic; public class SDCardDataSetLoader : MonoBehaviour   //如何从SD卡中加载数据集 {     private bool mLoaded = false;       //是否加载     private DataSet mDataset = null;   //要加载的数据     // Update is called once per frame     void Update()     {         if (VuforiaRuntimeUtilities.IsVuforiaEnabled() && !mLoaded)         //VuforiaRuntimeUtilities高通运行的一个API接口的使用。里面的IsVuforiaEnabled来判断场景是否启用         {             string externalPath = "/mnt/sdcard/tarmac.xml";  //设置文档路径(tarmac.xml这个文件是针对你项目中的XML文档)             if (mDataset == null)             {                 ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();                 //首先,创建一个数据集。(即得到当前跟踪对象的引用)                 mDataset = tracker.CreateDataSet();                 //给此对象创建一个数据集             }             if (mDataset.Load(externalPath, VuforiaUnity.StorageType.STORAGE_ABSOLUTE))                 //然后,给数据集中添加数据。                 //参数一: 数据目录                 //参数二: 存储类型,(绝对存储,以防丢失)                 //返回值为 : bool(代表是否加载成功)             {                 mLoaded = true;     // 加载成功             }             else             {                 Debug.LogError("Failed to load dataset!");  //否则报错             }         }     } } 3.再说一些题外话,项目中的StreamingAssets文件夹是Unity中的特殊文件夹。我在AssetBundle在安卓中的解析的教程中有提及过。有兴趣的可以查看。

    4,谢谢查看喽。

    转载请注明原文地址: https://ju.6miu.com/read-1295233.html
    最新回复(0)