1

我在 Blender 的编辑器中为 Blender 游戏引擎创建了一些脚本。我正在使用 Burster 插件来显示混合文件(关于插件的更多信息在这里

因为我了解到一旦 burster 插件在线显示 .blend 文件,就无法读取或写入文件,所以我已经搜索了另一种保存数据的解决方案。我一直在 Blender 游戏引擎中填充 globalDict。

这已经(除非我在这里遗漏了一些东西......疲劳和所有)允许数据持久化,因为数据是从脚本内部手动加载的。我这样做是因为脚本似乎从一次打开混合文件通过 Burster 持续到下一次。

所以,关于我的问题:

  1. 使用上述设置(Blender -> Burster)是否有更好的方法来进行数据持久化?

  2. 如果不是(或者即使是这样),我想知道 Blender 在哪里存储您在 Blender 中创建、编辑和保存的 python 脚本。

任何建议或帮助将不胜感激。

4

3 回答 3

1

这实际上完全取决于您想要获得什么样的“持久性”。

如果您想要在游戏期间保留数据,则必须使用 logic.globalDict,因为这是唯一跨场景持续存在的结构。

于 2012-10-08T20:55:55.757 回答
1

您可以在游戏对象中设置属性。

    import bge

    def main():
        cont = bge.logic.getCurrentController()
        own = cont.owner
        x = 2
        own["x"] == x

    main()

现在访问它。

    import bge

    def main():
        scene = GameLogic.getCurrentScene()
        cont = bge.logic.getCurrentController()
        own = cont.owner

        obj = scene.objects["obj"]

        x = obj["x"]
    main()

Blender 将其文件存储在 .blend 文件中。我不知道没有搅拌机就可以访问它们。

于 2012-11-15T04:11:27.247 回答
0

根据设计,Burster 插件无法将持久数据保存到用户的计算机上。在我向他们展示了一些非常严重的安全问题之后,Burster 的作者做出了这个必要的限制(并且还关闭了自动游戏启动)。

您可以在此处阅读 Burster 可以做什么和不可以做什么的完整详细信息:http://geta3d.com/index.php?option=com_content&view=article&id=20&Itemid= 23

对 cookie 的支持(允许将游戏状态保存到浏览器)是一项计划中的功能,但我不确定 Burster 的开发是否仍在进行中。

于 2015-07-02T19:38:38.093 回答