【发布时间】:2016-12-14 03:36:41
【问题描述】:
有没有办法在 Mono 中使用 Unity 的 C# 运行 R 脚本?
如果没有办法使用 Mono 运行 R 脚本,我愿意使用 .NET
更新
因此,以下代码将调用 R 脚本,但如果从 unity monodevelop 调用,则不会输出文件。可以将字符串返回为单声道,但在 startInfo.UseShellExecute 和 startInfo.RedirectStandardOutput 上更改 true 和 false 会引发错误。下面是调用 R 代码的 C# 代码:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "Rscript";
startInfo.WorkingDirectory = Application.dataPath + "/myUnity/Scripts/";
startInfo.Arguments = "Rexp1.R";
startInfo.CreateNoWindow = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = true;
startInfo.RedirectStandardOutput = false;
process.StartInfo = startInfo;
process.Start();
我确定 R 脚本会输出一个文件,或者我可以抓取 stdout 并保留它。我很乐意输出到文件或统一允许返回一个字符串,即 R 脚本的输出。
更新 2* - 这是R脚本。
sink("output.txt")
nts <- matrix(rnorm(100), nrow = 500)
ds <- dist(nts,method = "euclidean", diag = TRUE, upper=TRUE)
dm <- as.matrix(ds) # distance matrix
print(dm)
sink()
【问题讨论】:
-
我知道r.Net使用的框架对Unity来说太高了
-
你为什么还要这样做?对于一个插件或者你只是想用 R 来制作你的游戏?
-
我想使用R内置的一些功能。R是一种非常强大的科学研究语言,它可以用来简写许多操作。我想你可以将它用于游戏,但我正在研究。
-
如果它行得通,那就太好了。我从不打算支持移动设备。
标签: c# r macos unity3d monodevelop