109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
![]() |
之前章节,在对应目录,是生成了,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]]
|