我在Blender游戏引擎的Blender编辑器中创建了一些脚本。 我使用Burster插件显示混合文件(插件here上的更多信息)
因为我已经知道,一旦burster插件在线显示.blend文件,就无法读取或写入文件,我已经搜索了另一种保存数据的解决方案。 我一直在Blender游戏引擎中填充globalDict。
这有(除非我在这里遗漏了一些东西......疲劳和所有)允许数据持久化,因为数据是从脚本内部手动加载的。我这样做是因为脚本似乎从混合文件的一次打开到Burster持续到下一个。
所以,问我的问题:
使用上述设置(Blender - > Burster)有更好的方法来进行数据持久性吗?
如果不是(或者即便如此),我想知道Blender在哪里存储您在Blender内创建,编辑和保存的python脚本。
非常感谢任何建议或帮助。
答案 0 :(得分:1)
这完全取决于你希望获得什么样的“持久性”。
如果你想拥有在游戏期间保持不变的数据,你必须使用logic.globalDict,因为这是唯一在场景中存在的结构。
答案 1 :(得分: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文件中。我不知道如何在没有搅拌机的情况下访问它们。
答案 2 :(得分:0)
根据设计,Burster插件无法将持久数据保存到用户的计算机上。在我向他们展示了一些非常严重的安全问题之后,Burster的作者做出了这个必要的限制(并且还关闭了自动游戏启动)。
您可以阅读Burster在此处可以做什么和不能做什么的全部细节: http://geta3d.com/index.php?option=com_content&view=article&id=20&Itemid=23
支持cookie(允许将游戏状态保存到浏览器)是一项计划的功能,但我不确定Burster开发是否仍在进行中。