C# 直接从Unity3d资源运行Matlab脚本

C# 直接从Unity3d资源运行Matlab脚本,c#,matlab,unity3d,cmd,cross-language,C#,Matlab,Unity3d,Cmd,Cross Language,我已经用这个把头撞到墙上好几天了,就是找不到解决办法 我有一个Matlab脚本,我想从Unity3D项目的资产中运行,但我无法使它正常工作。脚本本身很好,因为它在Matlab中直接执行时工作正常。问题是如何从统一中启动它。这是我的 String mFile = "Assets/Scripts/MatLab/script.m"; StreamReader reader = new StreamReader(mFile); Process.Start( "matlab", "-nod

我已经用这个把头撞到墙上好几天了,就是找不到解决办法

我有一个Matlab脚本,我想从Unity3D项目的资产中运行,但我无法使它正常工作。脚本本身很好,因为它在Matlab中直接执行时工作正常。问题是如何从统一中启动它。这是我的

String mFile = "Assets/Scripts/MatLab/script.m";
StreamReader reader = new StreamReader(mFile);
Process.Start(
    "matlab",
    "-nodisplay -nosplash -nodesktop -r \"" + reader.readToEnd() + "\"" 
);
reader.close();
我知道,这真的很奇怪,但这是迄今为止我发现的唯一一种稍微有效的方法

问题在于脚本中有双引号和空格,这会混淆命令行。我试着逃逸那些字符,逃逸整个字符串,我能想到的一切

在你问之前,是的,使用MatLab是我唯一的选择。我和下一个家伙一样讨厌它,但它有一些我需要的功能

有人用过这种东西吗

注意:我现在实际上没有访问该项目的权限,所以上面代码中的任何错误都不是真正的问题,这只是我对它最好的记忆