关闭

【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)

1182人阅读 评论(3) 收藏 举报
分类:

Universal Windows PlatformUWP)是微软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进行曲线救国。

StreamUWP中没有close方法,只有Dispose方法,据说没有办法保存文件,所以本篇只读不写。

 


2
0
查看评论

【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)

Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备。 自从Unity 5.2之后,配合VS 2015和Windows 10 SDK就能够将Unity工程发布为UWP APP。可是这当中仍有数不清的...
  • xxxhhhyxy
  • xxxhhhyxy
  • 2017-06-05 21:18
  • 1959

【UWP开发】如何通过unity发布win10 uwp应用

●准备工作 ◇安装了windows10专业版系统的电脑 ◇安装visual studio2015专业版,注意安装的时候需要选择windows10 sdk,下载地址 ◇unity安装windowsstore的plugin ●开始发布 ◇在buildsettings切换到windows ...
  • egostudio
  • egostudio
  • 2017-08-19 11:19
  • 801

Win10 UWP应用发布流程

简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变。 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为广大开发者提供参考。   创建新提交 1.登陆至应用商店&#...
  • BXD1314
  • BXD1314
  • 2017-08-18 10:34
  • 691

Unity4.x UWP版本打包流程

结合具体的项目使用Desktop App Converter 把 Unity4.x 的应用 打包成UWP应用的流程整理
  • wuge026
  • wuge026
  • 2017-10-10 12:15
  • 334

将Vuforia程序发布到Windows10系统的基本流程

前言   Vuforia SDK是一个常用的增强现实软件开发工具,其跟踪效果稳定,使用简便,受到大众的喜爱。但是以前的Vuforia仅仅支持将程序发布到Android或者iOS,不能直接发布到Windows平台。即使使用Unity3D强行发布到Windows上,打开也是黑屏一片,不能工作。这种限制...
  • zzlyw
  • zzlyw
  • 2016-11-18 13:04
  • 2221

win10 uwp 如何打包Nuget给其他人

本文告诉大家,如果自己有做一些好用的库,如何使用 Nuget 打包之后上传,分享给大家。
  • lindexi_gd
  • lindexi_gd
  • 2017-09-27 09:01
  • 3981

Unity 游戏移植到 Windows10

Windows10 是微软公司最新一代的跨平台及设备应用的操作系统。它统一了包括个人电脑、平板电脑、智慧型手机、嵌入式系统、Xbox One以及新产品Surface Hub和HoloLens等等的整个Windows产品系列的作业系统,共享一个通用的应用程式架构(UWP)和Windows S...
  • u014581901
  • u014581901
  • 2016-05-23 22:10
  • 5358

UWP项目生成安装包远程安装在树莓派上

哎,好纠结啊!如果这个名字写的太长,会显得太繁琐,如果写的短又好像说不清楚,我这语言表达水平实在是令人担忧啊!不过应该能够明白啥意思吧!因为对这个感兴趣的会点进来的应该都是玩这个的,所以应该是没有二义性的吧! 我想还是再说明一下这篇文章是干啥的,会比较好吧!这篇文章写的就是怎样把写好的UWP项...
  • Bi_ZhiAn
  • Bi_ZhiAn
  • 2017-04-28 09:27
  • 807

Unity 游戏移植到 Windows10 之路 -- 环境搭建

孙广东   2015.8.31  是微软公司最新一代的跨平台及设备应用的操作系统。它统一了包括个人电脑、平板电脑、智慧型手机、嵌入式系统、Xbox One以及新产品Surface Hub
  • u010019717
  • u010019717
  • 2015-09-01 08:50
  • 2423

[Unity3D]适用于UWP的XmlDocument使用方法

本篇演示XmlDocument既可在UWP中使用又可在Unity3D编辑器中使用的方法。
  • u012741077
  • u012741077
  • 2016-08-10 01:39
  • 1477
    个人资料
    • 访问:14168次
    • 积分:275
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论