我正在使用 Python (Vizard) 在笔记本电脑上远程启动虚拟现实环境。我需要远程执行此操作,因为笔记本电脑已关闭,并且由还佩戴头戴式显示器的用户佩戴在背包中。我能够打开网络连接并发送导致虚拟现实环境加载到笔记本电脑上的命令,但是如果不完全关闭 Vizard,我就无法关闭环境。
为了启动,我添加了一个网络,如下所示:
myNetwork = viz.addNetwork('computer_name')
然后我使用网络事件回调等待网络消息:
def onNetwork(e):
loadWorld(e.preferences)
viz.callback(viz.NETWORK_EVENT, onNetwork)
def loadWorld(preferences):
<<...>>
所以,这很好用,并引导玩家进入虚拟现实环境中指定的首选项preferences
。但是如果我再通过网络发送一条消息,新世界就叠加在旧世界之上,而且似乎没有一个有用的方法可以将虚拟现实环境整齐地关闭。
由于我无法以体面的方式解构虚拟现实环境,因此最好从头重新启动整个程序。Vizard 中有一个命令viz.quit()
,但是如果我在函数调用之前插入它loadWorld
,程序会完全停止运行并且永远不会到达loadWorld
. 所以,我想知道是否有另一种方法可以做到这一点:关闭程序,但让整个脚本循环运行,这样当程序关闭时,它会立即重新启动。
问题:我如何告诉 Python 脚本关闭并释放所有资源,然后立即重新启动自己?