Python 和 Unity 交互,有没有什么比较优雅、高效的方法呢

日期 : 2021-01-06 23:41:52作者 : 熊人

背景

在 Unity 中搭建了一个模拟场景用于做实验,而我们研究的方法是用 Python 写的(因为库、便捷性、拓展性等因素,没办法切换了),现在希望能实现 Python 代码与 Unity 场景的交互。

流程

交互比较简单,Unity 场景中主要是一辆小车,我们希望:

  • Python 模块能实时控制这辆小车,也就是告诉 Unity 模块应该执行什么动作
  • Unity 模块把场景中传感器的读数传给 Python 模块

P.S. 两个模块在同一台机器上

思路

目前我能想到的做法:

  • socket 通信
  • A 模块把信息更新到某个文件中,B 模块去读取

问题

最核心的一个因素是效率:

  • 因为问题建模的缘故,Python 模块传给 Unity 模块的指令是帧级别的。也就是说,传送的不是“前行 1 秒”这样的指令,而是每一帧都传一个指令,通知 Unity 这一帧哪些动作是 enable 的,哪一些是 disable 的(相当于我直接把逻辑写在 Unity 的Update()函数里面)
  • 传感器读数的更新也需要做到每一帧都更新一次

所以想问一下有什么比较优雅的解决方案吗?

标签 :