Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ruby解析Unity YAML场景文件时出现语法错误&;心理_Ruby_Unity3d_Yaml - Fatal编程技术网

使用Ruby解析Unity YAML场景文件时出现语法错误&;心理

使用Ruby解析Unity YAML场景文件时出现语法错误&;心理,ruby,unity3d,yaml,Ruby,Unity3d,Yaml,我试图用Ruby和Psych gem解析Unity YAML场景文件。Unity文件应该是YAML的一个子集。每个Unity对象都是一个单独的YAML文档。以下是一个示例: %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!29 &1 OcclusionCullingSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_OcclusionBakeSettings: sm

我试图用Ruby和Psych gem解析Unity YAML场景文件。Unity文件应该是YAML的一个子集。每个Unity对象都是一个单独的YAML文档。以下是一个示例:

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_OcclusionBakeSettings:
    smallestOccluder: 5
    smallestHole: 0.25
    backfaceThreshold: 100
  m_SceneGUID: 00000000000000000000000000000000
  m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 9
  m_Fog: 0
  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
  m_FogMode: 3
  m_FogDensity: 0.01
我正在用以下方法解析它:

require'psych'
scene=Psych.load\u stream(File.read.“/scene.unity”)
这将导致此错误消息:

Psych::SyntaxError(():在分析第13行第5列的节点时发现未定义的标记句柄)

在一些调查之后,PyCH认为每个YAML文档都有它自己的TAG指令,而Unity的YAML解析器必须考虑文件开始时的指令是全局的。所以

问题1:谁是对的?TAG指令的作用域是从声明扩展到文件的结尾,还是仅扩展到文档的结尾(下一次出现的
--

我希望能够解析该文件而不必修改它。这导致

问题2:有没有一种干净的方法可以做到这一点?说一个我错过的心理选项,或者说一个将块传递到
文件的方法。读取
以便我可以动态添加标记指令