配置文件的读取

老廖
2021-09-06 / 0 评论 / 33 阅读 / 正在检测是否收录...
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System;
using UnityEngine;
/// <summary>
/// 配置文件读取器   ---1.获取配置文件方法
///                  ---2.提供供别人解析文件的方法
/// </summary>
public class ConfigurationRender
{
    /// <summary>
    /// 获取配置文件的方法
    /// </summary>
    /// <param name="fullName">传入文件的名字+后缀</param>
    /// <returns></returns>
    public static string GetConfig(string fullName)
    {
        //注意:一般如果是本地加载 建议在路径前面加上file://
        //    加载网络资源路径前缀是     http://
        //根据传入的文件名字拼接完成的路径
        string path;
        // Application.platform; 判断平台 一般不用 浪费性能
        //Unity宏标签
        //如果当前是编辑器或PC端 读取的文件路径
#if UNITY_EDITOR || UNITY_STANDALONE
        path = "file://" + Application.streamingAssetsPath + "/" + fullName;
        //如果当前是IOS 读取的文件路径
#elif UNITY_IPHONE
        path = "file://"+Application.dataPath + "/Raw/" + fullName;
         //如果当前是安卓平台     读取的文件路径
#elif UNITY_ANDROID
        path = "file://"+Application.dataPath+"!/assets/"+fullName;
#endif

        //读取该路径下的文本内容 注意以后可能会读取网上的资源想想用什么来读
        //通过www方式进行读取 填入路径
        WWW www = new WWW(path);       
        //循环
        while(true)
        {
            //如果读取完
            if(www.isDone)
            {
                //然后将文本内容返回出去
                return www.text;
            }
        }
    }
  
    //晚修作业 完善上面代码 然后找一个任意挂载的脚本中的start方法中测试
    //传入文件名 看是否能加载出来
    //2.整理笔记,将最近将的知识点 中的内容 有必要的情况 填充笔记
    //3.如果上述工作完成,则复习 面试题+电子书
   
    //Unity提供的委托原型 有2种?分别可以无参数或有参但无返回值的
                                 //有参数或无参数 但有返回值的
     /// <summary>
     /// 提供解析的委托方法
     /// </summary>
     /// <param name="file">传入要解析的文本</param>
     /// <param name="action">提供如何解析的方法</param>
    public static void BuildMap(string file,Action<string> action)
    {
        //StringReader类专门针对字符串的读取工作
        //可以把传入的字符串分行读取
        using (StringReader reader = new StringReader(file))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                //对当前行的拆分逻辑?
                //需求:当前拆分字符串的部分逻辑可能以后会发生不一样的变化
                //想用什么方式来代表当前位置。
                //如果用委托 委托如何定义。
                //调用委托();
                action(line);            
            }
        }
    }
}
0

评论 (0)

取消