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

4.1 KiB
Raw Permalink Blame History

回到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_twkeInitialize完成初始化 通过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