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