我正在Unity中创建一个国际象棋游戏。我想为Android构建我的游戏。对于AI,我使用的是Stockfish Chess Engine,尤其是“Stockfish-9-arm64v8”文件,它是Android的二进制文件。我创建了一个C#脚本,它创建了一个运行这个二进制文件并与之通信的进程。当我尝试启动我的流程时,会引发异常 - >
try{
mProcess.Start();
}
catch(Exception e){
Helper.PrintString(e.GetType().ToString()); // ----------------(1)
Helper.PrintString(e.Message); // --------------(2)
}
/*
(1) is printing :
system.componentmodel.win32exception
(2) is printing :
ApplicationName =
'/storage/emulated/0/Android/data/com.chessmania.chess/files/Stockfish-9- arm64v8', CommandLine = '', CurrentDirectory = ''
*/
我的进程信息参数如下:
ProcessStartInfo si = new ProcessStartInfo()
{
FileName = System.IO.Path.Combine(Application.persistentDataPath, "Stockfish-9-arm64v8"),
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true
};
任何人都可以帮助我。我过去几天一直试图解决这个问题,但无法解决。它与文件权限有关吗?我的意思是我应该在我的ProcessInfoParameters中包含一些参数来强制运行二进制文件?我真的不知道这是问题还是其他什么?如果我错了,请从一开始就纠正我。
我只想将Stockfish Chess Engine与Unity Project集成,并为Android平台构建它。如果有人有任何想法或建议,或者之前有人处理过类似的问题,请告诉我如何解决这个问题。我会很感激。感谢能和我一起到此为止:)