結論椿争,唯一可行的方法是3福青,把matlab打包成exe,在unity中用代碼調用exe
直接在unity中使用MATLAB語句
http://blog.csdn.net/zhupumao/article/details/51996113?
其中负芋,MLAPP是COM消别,unity不能調用。只能用tlbimp轉換成dll文件
https://docs.microsoft.com/en-us/dotnet/framework/interop/how-to-generate-primary-interop-assemblies-using-tlbimp-exe?
http://blog.csdn.net/wangmingjiu/article/details/5404225?
然而轉出來是.net 4.0低淡,unity不支持姓言,參考下面可以轉出.net 3.5的
https://stackoverflow.com/questions/2659738/visual-studio-2010-tlbimp-generates-net-4-0-interops-in-2-0-projects?
把該引用的東西都放到unity-plugin文件夾下,vs就會自動更新引用?matlab文件編譯成dll蔗蹋,用unity調用
用matlab的deploy tool中的library compiler編譯為.net assembly何荚,選target為3.5
然后加到unity的plugin里面,正常調用
然而1/2都最后都TM?遇到這個errorV砗肌2吞痢!NotImplementedException: The requested feature is not implemented. 感覺是Unity版本問題胁孙,根本沒有實現(xiàn)這個功能唠倦,所以最后我用了下面這個方法称鳞。
- matlab編譯成exe,用c#調用exe
http://blog.chinaunix.net/uid-22982394-id-2871946.html
↑ 參考第一條稠鼻,直接用代碼編譯
用application compiler打包出來的會有splash界面冈止,直接編譯的只會有命令行界面
用c#調用exe并傳參
string argument1 = "\"" + "test.png" + "\"";
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = System.Environment.CurrentDirectory + "\\frommatlab\\skeleton.exe";
process.StartInfo.Arguments = argument1;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
//啟動
process.Start();
//等exe結束在運行后面的代碼
process.WaitForExit();
不顯示命令行界面方法參考下面
https://stackoverflow.com/questions/23384435/how-can-i-hide-the-cmd-console-from-my-matlab-exe