obsidian/笔记文件/2.笔记/Qt_Unity_PC_SDK总结_第三章.md
2025-03-26 00:02:56 +08:00

3.5 KiB
Raw Permalink Blame History

之前章节在对应目录是生成了qt dll 相关依赖文件

!Pasted image 20240803153822.png

然后需要在Unity工程对应目录生成以上qt相关的dll和依赖文件先确认qt工程所在目录

!Pasted image 20240803153858.png

在它的上一级的上一级创建一个Unity工程基于Unity 2019.3.6

!Pasted image 20240803153915.png

!Pasted image 20240803153952.png

创建完成后记得把Unity工程关了不然通过qt生成或者修改dll文件的时候有可能会出现占用的情况 回到qt注释之前的Output相关 然后设定一下dll的生成目录是上上级对应Unity工程的对应路径需要注意的是如果文件夹不存在也会自动生成文件夹

!Pasted image 20240802154203.png

重新点击,构建按钮

!Pasted image 20240802154414.png

可以看到dll和文件夹都顺利创建出来

!Pasted image 20240803154117.png

复制所在路径

!Pasted image 20240803154129.png

循例基于64位MinGW编译器环境cd和跳转盘符抵达对应的文件夹

!Pasted image 20240803154210.png

然后 windeployqt 完成依赖的自动生成

!Pasted image 20240803154243.png

重新打开Unity工程创建 JustTest 测试脚本

!Pasted image 20240802154834.png

using 引用命名控件,还有 Serializable 可序列化类 InitData 也是包含传递给qt的相关数据体

!Pasted image 20240802154900.png

通过DllImport的形式写的是对应dll的前缀名字其中的方法是在qt中export出来的Invoke触发器方法再定一个enum枚举包含Init和Quit俩元素分别是初始化和退出SDK相关

!Pasted image 20240802155040.png

通过一个静态布尔isInit判断是否已经初始化最开始的时候设置为false即可

!Pasted image 20240802155444.png

再弄俩回调也是分别对应初始化和退出的其中OnInit初始化回调是会把上述静态布尔设置为true判断为初始化成功

!Pasted image 20240802155408.png

在Start开始函数中完成传参使用的json数据体构建然后Invoke触发Init初始化还有绑定回调OnInit

在OnApplicationQuit退出函数中也是根据isInit判断Invoke触发qt sdk的Quit退出函数即可

!Pasted image 20240802155542.png

这样直接挂载脚本运行unity的话是会报错的因为Unity.exe缺少qt相关的dll组件 之前自动生成qt dll的时候有一个qwindows的dll需要复制拷贝到Unity引擎所在目录

!Pasted image 20240803154318.png

复制拷贝后:

!Pasted image 20240802160230.png

!Pasted image 20240802160255.png

回到Unity测试脚本挂载到相机上

!Pasted image 20240802160314.png

运行Unity可以看到加载qt相关dll初始化的log回调是正常的

!Pasted image 20240802160353.png

初始化回调对应qt的log输出一致

!Pasted image 20240802160631.png

然后,开始弄,硬件信息相关,参考Windows WMIC命令使用详解 先在这个目录创建一个WMIC文件夹

!Pasted image 20240803154504.png

然后在该目录下创建一个空白txt文件

!Pasted image 20240803154531.png

修改文件后缀为pri

!Pasted image 20240803154544.png

回到pro工程文件添加include引用保存修改

!Pasted image 20240802161530.png

等待编译完成,可以看到,空白工程,就正常被引用进来了;

!Pasted image 20240802161618.png