Unity发布Webgl 文件夹下的配置文件读取问题

本文探讨了Unity在Webgl平台下文件访问的特殊性,强调了与PC运行时的不同。重点在于理解文件的存放位置以及如何确保网络加载。正确调用顺序对于保证配置文件在窗体加载前完成加载至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个PC运行时的文件访问方式,判断有无并加载即可


[Serializable]
public class  SanguConfig : BaseConfig
{
   

    public readonly string FileName = Application.dataPath + "/SanguConfig.json";

    public SanguConfig()
    {
   
        var item = new IdleSanguConfig().CommandsMap;
    }

    public override IEnumerator DoTheDeserialize()
    {
   
        if (System.IO.File.Exists(FileName))
        {
   

            Debug.Log("hhh");

            string st = System.IO.File.ReadAllText(FileName);
            
### Unity WebGL 中实现文件读取功能 #### 使用 Resources.Load 加载文件 在 Unity WebGL 平台中,可以利用 `Resources.Load` 来加载位于特定路径下的文件。此方式适用于较小规模的数据文件,并且这些文件需预先放置于项目的 Resources 文件夹内[^1]。 ```csharp public TextAsset LoadFileFromResources(string fileName) { return Resources.Load<TextAsset>("Files/" + fileName); } ``` #### 利用 WebRequest 进行远程或本地文件访问 对于存储在 StreamingAssets 文件夹内的文件(如 JSON 配置),可借助 `UnityWebRequest` 或者 .NET 的 `System.Net.WebClient` 类来发起 HTTP 请求完成读取操作。这种方式特别适合处理较大尺寸或是结构复杂的文件[^3]。 ```csharp IEnumerator GetJsonData() { string url = "file://" + Application.streamingAssetsPath + "/uuid.json"; #if UNITY_WEBGL && !UNITY_EDITOR WWW www = new WWW(url); yield return www; #else using (var uwr = UnityWebRequest.Get(url)) { yield return uwr.SendWebRequest(); if ((uwr.result != UnityWebRequest.Result.Success)) Debug.LogError(uwr.error); else ProcessJSON(uwr.downloadHandler.text); } #endif } void ProcessJSON(string jsonData){ // 解析json数据... } ``` #### 借助第三方库读取 Excel 数据 当目标是读取 Excel 表格时,可以选择集成 FlexReader 插件。该插件专为 WebGL 设计优化,允许开发者方便快捷地解析 XLS/XLSX 文档内容而不必担心跨平台兼容性问题[^2]。 ```csharp using FlexCell; // 初始化表格对象 Workbook workbook = Workbook.Open("path/to/excel/file.xlsx"); Worksheet sheet = workbook.Worksheets[0]; // 获取单元格值 string cellValue = sheet.Cells["A1"].Value.ToString(); workbook.Close(); // 关闭工作簿释放资源 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值