Python 3.x Blender游戏引擎数据持久化和导入

Python 3.x Blender游戏引擎数据持久化和导入,python-3.x,blender,Python 3.x,Blender,我在Blender的编辑器中为Blender游戏引擎创建了一些脚本。 我正在使用Burster插件来显示混合文件(关于该插件的更多信息) 因为我了解到,一旦burster插件在线显示.blend文件,就无法读取或写入文件,所以我搜索了另一种保存一些数据的解决方案。 我一直在搅拌机游戏引擎中填充globalDict 这允许数据持久化(除非我在这里遗漏了什么…疲劳和其他),因为数据是从脚本内部手动加载的。我这样做是因为脚本似乎从混合文件的一个打开一直持续到下一个打开 那么,关于我的问题: 使用上述设

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

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

这允许数据持久化(除非我在这里遗漏了什么…疲劳和其他),因为数据是从脚本内部手动加载的。我这样做是因为脚本似乎从混合文件的一个打开一直持续到下一个打开

那么,关于我的问题:

  • 使用上述设置(Blender->Burster),有没有更好的方法来实现数据持久化

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


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

    这实际上取决于你希望得到什么样的“坚持”


    如果您希望在游戏期间保留数据,则必须使用logic.globalDict,因为这是在场景中保持不变的唯一结构。

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

        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文件中。我不知道如何在没有搅拌机的情况下访问它们。

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

    您可以在此处阅读Burster可以做什么和不能做什么的全部细节:

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