HoloLens2读取本地文件

HoloLens2读取本地文件

    • 文件读取
    • 打包生成VS项目
    • 参考连接

文件读取

    在由Unity生成的Visual Studio (Universal Windows) 项目中,将需要读取的XML文件或text文件放在目录…\Assets下,或者创建一个子文件夹来存放所需读取的文件。如下图,我将所需读取的文件放在了…\Assets\StreamingAssets下
HoloLens2读取本地文件_第1张图片
在Script顶部添加如下声明:

#if WINDOWS_UWP
using Windows.Storage;
using System.Threading.Tasks;
using Windows.Data.Xml.Dom;
using System;
#endif

然后根据Uri的路径来读取文件:

string xmlText;

#if WINDOWS_UWP        

        Task task = new Task(

            async () =>
            {
                var xmlFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Data/StreamingAssets/Test.xml"));
                XmlDocument xdoc = await XmlDocument.LoadFromFileAsync(xmlFile);
                xmlText = xdoc.GetXml();

            });
        task.Start();
        task.Wait();

#endif

    该例子中的Test.xml文件放在了Assests文件夹下的StreamingAssets子文件夹下(为什么 在文件路径中多出了Data文件夹,在打包生成VS项目的那一步中会解释)。
同样的也可以读取text文件:

string plainText;
public Text txtTextMesh.text;

#if WINDOWS_UWP        

        Task task = new Task(

            async () =>
            {                              
                StorageFile textFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Data/Text.txt"));
                plainText = await FileIO.ReadTextAsync(textFile);

                txtTextMesh.text = plainText;

            });
        task.Start();
        task.Wait();

#endif

    该例子中的Text.txt文件是位于Assests下的,txtTextMesh是Text类型,将读取到的内容显示在场景中绑定的Text上(为什么 在文件路径中多出了Data文件夹,在打包生成VS项目的那一步中会解释)。

打包生成VS项目

    将工程在Unity打包成VS文件后,之前的文件或者子文件夹会被打包到工程下的Data文件夹下
HoloLens2读取本地文件_第2张图片
HoloLens2读取本地文件_第3张图片
HoloLens2读取本地文件_第4张图片
    打开生成的VS项目,设置属性如下,代表着在部署项目的时候这些文件会跟随项目一起打包生成:
HoloLens2读取本地文件_第5张图片

    在Relative Path路径中可以看到其路径为:Data\StreamingAssets\xxx,因此在之前声明Uri路径的时候需要加上Data文件夹。
至此HoloLens中文件读取完成。

参考连接

How to deploy and read data file with app
Save a string to a text or cvs file on HoloLens

你可能感兴趣的:(HoloLens)