在 Unity 中导入 plist 动画或提取帧

Posted

技术标签:

【中文标题】在 Unity 中导入 plist 动画或提取帧【英文标题】:Import plist animation in Unity or extract frames 【发布时间】:2017-04-27 02:49:37 【问题描述】:

我在 Google 上进行了很多搜索,但没有找到我需要的答案。 我为 ios 创建了很多动画文件,它们带有精灵表和相关的 plist 文件。 我需要在 Unity 中导入这些动画的帧,但我不知道该怎么做,因为与 plist 没有直接兼容性,而且我还没有找到从精灵表中提取正确帧的软件。有谁知道我该怎么做?

【问题讨论】:

.plist 文件只是 XML。最坏的情况,你可以自己解析它们。 感谢您的回复。我知道 plist 是 XML 但我不搜索最坏的情况;-) 我希望其他人刚刚遇到这个问题并解决它;-) 【参考方案1】:

使用System.XML.XMLDocument(与TextAsset.text)解析.plist,使用TextureImporter.spritesheetSpriteMetaData读取/写入spritesheet数据。

我在生产中使用 XMLDocument(速度很快)来读取 SVG 文件。对于 TextureImporter,here 你可以看到我直接用它微调 spritesheets 的示例。

【讨论】:

感谢 Geri 的回复。我不想直接从 plist 使用这些动画,我想将它们导入 Unity,然后,我想在 Unity 中重新创建这些所有动画。如果我理解得很好,您建议我直接在 Unity 中运行这些动画,但这不是我的目标 ;-) @LucaPanteghini 我用它来重命名项目中的切片。同样,您可以编写一个编辑器脚本来导入动画数据。 @LucaPanteghini 恐怕你找不到“将我的精灵表信息从 plist 导入 Unity”工具。 不,现在我正在等待一点,但我正在考虑编写一个脚本,从 spritesheet 中提取单个精灵,然后在 Unity 中重新创建所有动画。我正在处理的 plist 和 spritesheet 有点复杂,因为它们使用偏移和旋转。 这次我不能继续工作,因为我必须完成另一个紧急项目,但我尽快回到这个问题并尝试实施我的解决方案。谢谢大家!

以上是关于在 Unity 中导入 plist 动画或提取帧的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D:导入关键帧动画(不是基于骨骼的动画)

如何以 plist 或 zip 格式读写二进制数据?

在 Unity 中导入 Blender,如何生成正确的网格对撞机?

如何构建在unity/c#中导入的c++ dll

unity3d怎么把动画导入模型?

关于MATLAB提取MP4视频帧时候,跨帧取速度会慢