真Unity3D_文件格式meta prefab scene等关联文件管理等剖析与Yaml的关系第二章

Yaml的格式比较奇葩,和我们一直使用的json,xml都不同

YAML格式文件d3个关键概念

1.MappingNode就不说了, 

2.SalarNode是重点,和Json等很不同,下面这2个都是SalarNode;!!!都是

m_TransformParent: {fileID: 0}
m_IsPrefabParent: 1

3.数组Node也比较好理解

m_RemovedComponents: []

搞清楚上面YAML的重点概念,其实就很好处理了

一个简单的yaml

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
  m_ObjectHideFlags: 1
  serializedVersion: 2
  m_Modification:
    m_TransformParent: {fileID: 0}
    m_Modifications: []
    m_RemovedComponents: []
  m_ParentPrefab: {fileID: 0}
  m_RootGameObject: {fileID: 1569158505684088}
  m_IsPrefabParent: 1
--- !u!1 &1569158505684088
GameObject:
(省略几千行)

绕了一个弯,再绕一个弯

  static string GetPrefabGameObjectId(YamlNode node_prefab)
    {
        YamlMappingNode map_prefab = node_prefab as YamlMappingNode;
        var item = map_prefab.Children[new YamlScalarNode("m_RootGameObject")];
        YamlMappingNode map_item = item as YamlMappingNode;
        string fileId = "";
        //TODO:暂时不知道怎么取第一个节点
        foreach (var k_v in map_item.Children)
        {
            //取一个简单值,绕晕你,再绕晕你。。。。就问你服不服
            fileId = ((YamlScalarNode)k_v.Value).Value;
            break;
        }
        return fileId;
    }

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值