0

我正在编写一个 C# 脚本来从代码修改 Unity3D 4.1 中的动画控制器。因此,我使用 YamlDotNet yaml 解析器解析控制器,但在尝试解析控制器文件时遇到错误。

我用其他 yaml 示例进行了尝试,它工作正常,但是控制器旁边有一些特殊的标签 --- 这似乎导致解析器遇到 SemanticErrorException。

请参阅以下代码,它代表 AnimationController yaml 文件的一些行:

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
(...)
--- !u!1101 &110100000

解析类似于以下示例的文件可以正常工作:

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---
AnimatorController:
(...)
---

我在 1.1 的 yaml 规范中寻找解决方案。和 1.2 但我仍然不明白这些标签代表什么以及它们是如何解释的。

yaml.org/spec/1.1/

yaml.org/spec/1.2/

有人可以向我解释这些标签,也许还有我如何仍然可以使用解析器解析 AnimationController 而无需编写自己的 yaml 解析器。

任何帮助表示赞赏!谢谢!

问候

托马斯

4

2 回答 2

0

在 UnityEditorInternal 中使用 AnimatorController 类怎么样?它提供了创建和修改 AnimatorController 资产所需的所有方法,而且一切似乎也是公开的。似乎是比修改 Yaml 代码更好的方法,特别是因为您在 Unity Free 中没有任何 Yaml 代码,它不支持资产的文本序列化模式。

此外,API 可能比序列化格式更稳定。

于 2013-06-20T12:14:49.430 回答
0

在解析统一场景 yaml 时遇到同样的问题。

有人可以解释一下这些标签吗

来自Unity 手册>高级>文本场景文件格式>格式说明

--- !u!1 &6 ... 第一行在文档标记之后包含字符串“!u!1 &6”。“!u!”之后的第一个数字 part 表示对象的类(在这种情况下,它是一个 GameObject)。和号后面的数字是一个对象 ID 号,它在文件中是唯一的,尽管该数字是任意分配给每个对象的。

我猜这是非标准的 Yaml?

于 2014-05-08T17:53:21.850 回答