Scenekit 在写入 dae 时自动为节点名称中的空格插入下划线

Scenekit automatically inserts underscores for blank spaces in node names when writing to dae

我正在尝试编辑 dae 文件以更改节点的名称。我得到了我想要编辑的子节点,我编辑了现在包含空格的名称 - 比如 "Node Name"。一旦我将这个场景写入 dae 文件,使用 SceneKit 的 write(to:options:delegate:progressHandler:), 新 dae 文件中的节点名称自动更改为 "Node_Name"。 dae中的节点名是否不允许有空格?

有没有办法覆盖这种行为?

这是 Collada 1.4.1 specification. A node's name is a xs:NCName 的一部分,不允许包含空格。

这在 Collada 中得到了放松 1.5.0 where name becomes a xs:token

无法覆盖 SceneKit 使用的 Collada 规范,目前是 Collada 1.4。