【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
来源:互联网 发布:java log4j日志 编辑:程序博客网 时间:2024/06/06 03:21
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备。
自从Unity 5.2之后,配合VS 2015和Windows 10 SDK就能够将Unity工程发布为UWP APP。可是这当中仍有数不清的雷区,比如文件读取。
上篇是UWP文件读取的铺垫,本篇是具体的Unity转UWP的文件读取
---------------------------
在Unity中:
①Unity没有Windows.Storage命名空间,所以这绝对是个坑。
②Unity的C#版本只有4.0,不支持诞生于4.5的async/await异步机制,所以StorageFile 中的各种异步方法全部不能用。
虽说发布成UWP,但是在UWP下运行时,依然会受到Unity的诸多限制。
当然网上有方法在Unity中使用异步机制:http://blog.csdn.net/u013628121/article/details/52964063
但是我并没有成功,最终在这篇文章中得到了灵感,即采用非异步的方式:http://blog.csdn.net/u012741077/article/details/52167614
下面奉上我的最终代码:
using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using System.Text;using System;#if NETFX_CORE //UWP下编译using Windows.Storage;#endif/// <summary>/// 数据控制类/// </summary>public class DataBase : MonoBehaviour{ // Use this for initialization void Start() { ReadData(); } // Update is called once per frame#if NETFX_CORE //UWP下 private void ReadData() { StorageFolder docLib = KnownFolders.DocumentsLibrary; var docFile = docLib.OpenStreamForReadAsync("Data\\data.bin"); docFile.Wait(); var fs = docFile.Result; //成功取出fs,后续操作自己玩 fs.Dispose(); }#else //Unity下 private void ReadData() { string strDataPath = "C:\\Users\\YXY\\Documents\\Data\\data.bin"; Stream fs = new FileStream(strDataPath, FileMode.Open, FileAccess.Read); //成功取出fs,后续操作自己玩 fs.Dispose(); }#endif}
这次的路径是:文档\Data\data.bin。对应传统路径:C:\Users\YXY\Documents\Data\data.bin。
上篇已经教过大家读取byte数据了,所以这里不再赘述,大家可以把byte转换成各种继续使用。
总而言之,只要不用异步方法取出流 fs,剩下的都好办了。
要点:
①FileStream的初始化在UWP中因为读写权限问题无法实现,但是可以用其父类Stream进行曲线救国。
②Stream在UWP中没有close方法,只有Dispose方法,据说没有办法保存文件,所以本篇只读不写。
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)
- 【UWP开发】如何通过unity发布win10 uwp应用
- Win10 UWP应用发布流程
- 【UWP开发】unity发布win10报错Exception: Failed to restore NuGet packages
- unity 读取本地文件
- win10 uwp 读取文本GBK错误
- win10 uwp 读取保存WriteableBitmap 、BitmapImage
- Win10的UWP之进度条
- Win10的UWP开发之Hello World
- Win10之UWP的数据存储
- win10 uwp 获取指定的文件 AQS
- Unity不同平台读取本地文件地址
- 1)Win10-UWA开发 UWP应用操作方法、Windows 10应用程序的指南
- J2ME读取本地文件的方法
- j2me读取本地文件的方法
- C#的WebService读取本地文件
- 读取本地文件的权限问题
- 切换用户和修改密码
- OS 内存管理
- 标签控件的使用
- LInux学习笔记 --NFS
- 在Node.js中使用RabbitMQ系列一 Hello world
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
- MySQL入门——修改数据表2:往指定的表中添加多列数据(字段)
- 多进程共享/同步
- UGUI学习(三)登录界面Text,Image,Button,Inputfield应用
- 玩转git命令行
- 反向传播matlab代码
- android studio学习----目录结构
- 【caffe】caffe中通过图像生成lmdb格式的数据
- 121. Best Time to Buy and Sell Stock