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

117 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

回到core头文件新增一个显示测试UI的ShowUI枚举再声明一个TestShowUI的函数
![[Pasted image 20240806201253.png]]
Core源文件对应实现设定测试UI的父窗体是Core获取到的Win窗体再调用exec进行事件等待窗体操作完成再执行后续操作参考[[qt中main函数中的exec作用总结]]
![[Pasted image 20240806201400.png]]
在Invoke函数中添加对应的case触发和函数调用
![[Pasted image 20240806201756.png]]
保存修改,编译构建
![[Pasted image 20240806201828.png]]
回到Unity端脚本也对应添加同名枚举
![[Pasted image 20240806201853.png]]
再加一个回调
![[Pasted image 20240806201909.png]]
在OnGUI中对应调用
![[Pasted image 20240806201946.png]]
保存修改打开Unity运行显示UI和阴影遮罩特效正常
![[Pasted image 20240806202059.png]]
然后开始弄Miniblink相关miniblink是一个开源的小巧浏览器框架参考[[miniblink功能整理]]先在UI子项目添加新文件
因为网页渲染相关跟qt原本的半透明属性设置会存在显示渲染的bug所以需要两个ui实现内置浏览器的功能后续会再创建一个背景相关的ui
![[Pasted image 20240806214050.png]]
![[Pasted image 20240806214258.png]]
![[Pasted image 20240806214731.png]]
命名为MiniBlinkUI即可
![[Pasted image 20240806214812.png]]
来到UI子项目路径把对应miniblink的头文件相关wke.h复制粘贴到该目录
![[Pasted image 20240806220314.png]]
右键子项目,添加现有文件
![[Pasted image 20240806220350.png]]
把头文件,加进去
![[Pasted image 20240806220417.png]]
miniblinkui界面编辑设置一下宽高
![[Pasted image 20240807113417.png]]
头文件include引用关系和构造函数还有信号和关闭等声明
![[Pasted image 20240807113540.png]]
内置浏览器的调用,需要使用到 miniblink_4975_x64.dll 这个dll文件是从官网的github开源地址下载即可
先把该dll文件拷贝粘贴到Unity.exe游戏引擎所在路径即可
![[Pasted image 20240807114237.png]]
源文件,构造函数中,先获取到,应用程序的目录路径;
当前是基于Unity工程打开也就是Unity.exe所在的路径
通过各内置函数wkeLoadURL加载网址wkeSetWkeDllPath设置dll路径参考[[QString转wchar_t]]wkeInitialize完成初始化
通过setWindowFlags函数设置好qt窗体的显示属性后通过wkeCreateWebWindow内置函数完成网页窗体的设置即可设定分辨率是640*480和该ui窗体界面的尺寸一致
最终通过wkeShowWindow函数接口显示webview
再通过wkeLoadURL函数接口加载对应网址
![[Pasted image 20240811174311.png]]
析构函数、还有关闭函数相关使用miniblink的wkeFinalize函数清理即可
![[Pasted image 20240807114830.png]]
开始添加,网页背景相关
![[Pasted image 20240807115039.png]]
![[Pasted image 20240807115108.png]]
![[Pasted image 20240807115125.png]]
命名为MiniBlinkUIBg界面
![[Pasted image 20240807115150.png]]
ui界面编辑弄一个pushbutton按钮用来关闭网页
![[Pasted image 20240807115337.png]]
尺寸和属性参考
![[Pasted image 20240807115415.png]]
![[Pasted image 20240807115436.png]]
![[Pasted image 20240807115455.png]]
头文件是继承自ShadowDialog阴影特效类
声明的私有变量中还包含miniblink前置ui相关的MiniBlinkUI变量
![[Pasted image 20240807115558.png]]
源文件构造函数中实例化前置MiniBlinkUI窗体作为子窗体通过setParent函数设置当前背景为父窗体即可参考[[解决网页在qt半透明情况下无法正常渲染的问题]]
在initSignals初始化信号的函数中通过connect的方式把pushbutton按钮的点击和CloseAll函数调用关联起来
而CloseAll函数是调用前置MiniBlinkUI窗体的CloseAll函数关闭各事件相关窗体指向也是设置为空指针参考[[nullptr]]
![[Pasted image 20240807115709.png]]