通过Process在Unity中调用Python(未完成)
[TOC]
由于个人对Unity比较熟悉,因此打算将api接入unity实现对话的图形化…不过大部分的模型api都是通过python来调用,因此决定通过unity来实现对python脚本的调用。经过了解,有许多文案写的是通过Python for Unity来实现调用。然而该组件实现的脚本只能放在Editor目录下,也没办法打包,只能说完全不适配。尽管还存在**
UnityWebRequest等实现方式,不过决定通过Process**来实现。
一、Process类简介
Process组件提供对计算机上正在运行的进程的访问权限。 用最简单的术语说,进程是一个正在运行的应用。 线程是操作系统分配处理器时间的基本单元。 线程可以执行进程代码的任何部分,包括当前由另一个线程执行的部分。
——————————文档介绍
Process 类是 C# 中 System.Diagnostics 命名空间下的一个类,可以管理和控制操作系统进程。其可以调用的范围包括:
-
.exe
-
.bat / .cmd
-
任何包含可打开该后缀的文件,比如当电脑安装了python便可以打开
.py,当电脑安装了音乐播放器就可以打开.mp3。 -
处理正在运行的进程,可以进行包括但不限于
-
获取进程信息
-
终止进程
-
重定向输入流
-
重定向输出流
-
重定向错误流
因此,通过打开
.py文件作为进程,重定向输入、输出和错误,就可以实现在Unity中调用python。 -
二、Process语法
就要用得上的部分分析,包括以下几个类:
ProcessProcessStartInfoTraceStopwatchDebug
其中,**Process和ProcessStartInfo**是刚需,剩下的作为性能优化考虑。
-
Process