Unity如何处理导出游戏中的文件夹和文件?

时间:2017-04-19 20:04:55

标签: c# unity3d unity5 blender

我在Unity的游戏开发方面很陌生,并且想知道团结的“导出游戏”功能是如何运作的。我尚未在统一中使用此功能,但我已经读过它将从您的完整游戏中生成一些.exe文件。我还读到它将创建一个“数据”文件夹或类似的东西。

我的问题是:这个“数据”文件夹中存储了什么?我如何编写逻辑来保存我自己的文件(例如包含保存状态,设置,配置等的文件)在这个目录中的某个文件中(然后随附完整游戏/在本地游戏目录中创建)用户例如第一次保存他的游戏?我可以将这些文件保存在相对路径中(例如./MyGame/data/savegames)吗?

我可以创建哪些类型的文件?文字/二进制?或者我甚至可以使用一些关系数据库(像HSQLDB这样的小数据库)?

模型,声音,动画和其他资产如何处理?它们都打包在.exe文件中,这是我的完整游戏吗?或者我为他们制作的游戏中是否有一些单独的文件夹?

谢谢!

1 个答案:

答案 0 :(得分:0)

数据文件夹(名称与exe文件相同,但最终为_Data而不是.execan be safely renamed to just Data)包含实际运行游戏的all of the dlls (即使是一个空白的Unity项目也会有它们!统一引擎本身编译为几个 dll)以及你可能拥有的任何Resources(提示:停止使用资源并使用{{3}而不是)。

省略这个文件夹确实非常糟糕!

至于从硬盘读取/写入其他数据(在所有平台上都不可能 - 查看您的Web部署)我建议您使用自己的文件夹,例如。 RuntimeData可能包含外部音频,图像或视频文件以及Asset Bundles或屏幕截图等可变数据。几乎任何事情都可以让你的用户在没有严重破坏的情况下进行修改(现在改装是“在”中)。

至于文件的 types :嗯,这取决于你,真的!创建文本文件(任何扩展名:xml,html,dat,qqq ...)非常简单。图像往往是通过第三方脚本完成的(你真的想要编写自己的JPG转换器吗?视频,同样的事情)。您也可以save games按照您自己选择的格式进行操作。唯一的困难是为数据编写串行器和解串器,随着数据复杂性的扩展,这将难以扩展。

您拥有完整的文件系统访问权限*因此您可以在任何地方实际读取或写入。这是我们正在谈论的C#。但是,强大的力量带来了巨大的责任。

*注意:移动设备对此类内容非常不满意,并且会拒绝访问明确提供给该应用程序的文件夹之外的文件夹。