软件准备是matlab2022b,VS2019, unity2020.3.25f1c1版本、实现了在unity中调用带参matlab函数,输出矩阵跟进行简单计算。
方案一:将matlab文件转化成.dll引用
一、前期软件准备:
1、需安装matlab、matlab compiler、matlab compiler SDK 。用安装程序安装就行,或者在matlab命令行窗口 deploytool 点击 matlab compiler SDK 安装就可以(会自动安装matlab compiler)
2、安装 Visual Studio ,不同版本对matlab功能的支持情况不同,但是在安装unity2020.3.25f1c1时安装附带的visual studio则不会有相关问题。
3、安装MATLAB Runtime。在matlab命令行窗口输入 compiler.runtime.download 会开启下载,在matlab里用指令下,下载的版本是匹配的。
二、配置系统、打包生成 .dll 文件按:
(1) 添加MATLAB路径:
(2) 对mwcomutil.dll进行注册。这个dll文件位于E:\MATLAB\R2016b\bin\win64文件夹中(不用找出来):以管理员的身份注册:输入:regsvr32 mwcomutil.dll
注意:一定要添加matlab路径然后注册 regsvr32 mwcomutil.dll 不然unity运行会显示如下报错:
(3) 生成matlab的dll文件编写.m文件,在matlab中调试运行通了。生成dll文件:matlab命令行窗口输入 deploy tool ,在弹出窗口选择 Library Compiler选择 Library Compiler 之后,会弹出下方窗口,【TYPE】中选择【.NET Assembly】,然后EXPORTED FUNCTIONS中点击右上角【+】,选择编写好的.m文件,下方【命名空间】和【Class Name】可以修改(非必须,但还是好好命名会便于管理),点击【Package】等待打包完成。
三、Unity中添加引用
上述打包完成后找出 MWArray.dll 和自己在matlab中生成的.dll,拖到Plugins文件夹内即可。添加MWArray.dll 适用于数据转化的,由于C#与matlab数据类型不同,Matlab MathWorks 提供了两个API(对应不同.net版本)用来作为中间类处理 .NET 应用程序和matlab之间的数据交换。
C#代码参考:
参考:原文链接:纯小白新人菜鸟第一次unity VR项目与matlab联动调试过程记录超详细版本2023.3.12_unity调用matlab_HR小姐姐的博客-CSDN博客文章来源:https://www.toymoban.com/news/detail-818816.html
若有需要,参见上述原文,此处仅为个人笔记。文章来源地址https://www.toymoban.com/news/detail-818816.html
到了这里,关于unity脚本实现与Matlab强大计算能力的交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!