第六章 基本框架(Framework)
六 配置文件(Config Files)
配置文件的读取,就是要读取文本,或者反序列化。
而配置文件的类型也是多种多样,比如xml、txt、csv、json、protobuf等。
当然,读取它们几乎是相同的工作。
我们这里新建所有配置文件的基类ConfigFile
。
namespace DR.Book.SRPG_Dev.Framework
{
/// <summary>
/// 所有Config的基类。
/// 参考其它继承它的类,可以添加任何类型文件。
/// 比如protobuf,csv,excel等文件。
/// </summary>
public abstract class ConfigFile
{
// TODO
}
}
1 设置(Setting)
读取方式,我们也设置成可设置的,那么就需要一个标识。
/// <summary>
/// 文件读取方式
/// </summary>
[Flags]
public enum LoadType
{
/// <summary>
/// Unity Resources文件夹
/// </summary>
Resources = 0x01,
/// <summary>
/// 本地WWW
/// </summary>
WWW = 0x02,
/// <summary>
/// 需要与其它方式配合,不能单独使用
/// </summary>
AssetBundle = 0x04,
/// <summary>
/// 网络WWW
/// </summary>
WWWInternet = 0x08,
}
而无论在本地还是网络,都需要一个路径。而我们准备一个相对路径。而且还要注意,比如Resources读取是不需要扩展名的。有些文件可以直接读取text,但我们决定读取byte[]
,这是由于某些二进制文件还是需要这样我们自己解析。
protected struct Info
{
/// <summary>
/// 相对路径,不要以'/'或'\'开始。
/// 如果LoadType包含AssetBundle,这里指AssetBundle相对路径。
/// </summary>
public string relative { get; set; }
/// <summary>
/// 名称与扩展名,Resources与AssetBundle不需要扩展名。
/// 如果LoadType包含AssetBundle,这里指AssetBundle名字。
/// Resources支持的文本类型,请查看官方文档。