首页 > 解决方案 > 如何检查资产文件是 YAML 还是二进制格式?我是直接切换它的格式吗?

问题描述

出于某种原因,我需要编辑xxx.preafb文件,但 Unity.prefab文件有两种格式,二进制或 YAML 所以我如何检测xxx.prefabYAML格式还是binary. 如果我检测到此文件是二进制格式,我该如何将其切换为YAML. 我知道 Editor > AssetSerialization > Mode 它可以格式化项目的所有资产,但它改变了太多......

标签: c#unity3dyaml

解决方案


由@BrainChoi 建议,只需检查一线解决方案。

 static bool IsYAML(string path)
    {
        if(!File.Exists(path))
        {
            return false;
        }

        using (StreamReader sr = new StreamReader(path))
        {
            if (sr.Peek() >= 0)
            {
                string header = sr.ReadLine();
                return header.Contains("%YAML 1.1");
            }
            else
            {
                return false;
            }
        }
    }

推荐阅读