![d00b4f1939e5821a8aa91811d0664ad2.png](https://img-blog.csdnimg.cn/img_convert/d00b4f1939e5821a8aa91811d0664ad2.png)
最近在学习godot游戏引擎,看到了一篇其它游戏引擎有实现透明窗口的功能:
喵刀Hime:Unity2019实现背景透明桌宠zhuanlan.zhihu.com![14b876badb97b747505603bb9d29baf2.png](https://img-blog.csdnimg.cn/img_convert/14b876badb97b747505603bb9d29baf2.png)
(更新:经评论提醒,上面这个链接已失效,原作者把这篇文章删除了,原因未知)
于是来研究一下godot游戏引擎的实现方法。
使用godot游戏引擎实现透明窗口很简单,首先新建或者打开一个项目,就会进入编辑器界面。
进入godot游戏引擎编辑器界面后,在项目菜单中打开项目设置。
![238e4eb2937fb18a01f3b8b11ee7f2e8.png](https://img-blog.csdnimg.cn/img_convert/238e4eb2937fb18a01f3b8b11ee7f2e8.png)
然后在项目设置的分类中找到Display→Window(显示→窗口)
![df482d8ef2ba148519733d602fd6ed09.png](https://img-blog.csdnimg.cn/img_convert/df482d8ef2ba148519733d602fd6ed09.png)
选择设置的分类后,在设置中找到Per Pixel Transparency(每像素透明度)
然后把这个设置下的Allowed(允许)和Enabled(启用)都勾选上就行了。
![5f4a74e7f7359879e4f1ed494f31ef7e.png](https://img-blog.csdnimg.cn/img_convert/5f4a74e7f7359879e4f1ed494f31ef7e.png)
此时运行项目,会发现窗口的边框不见了,但是还是存在着背景颜色。
![c4ad2d7b073f6142b3533b01ea176275.gif](https://img-blog.csdnimg.cn/img_convert/c4ad2d7b073f6142b3533b01ea176275.gif)
接下来,只需要把背景颜色取消掉就行了,在脚本中添加这一句代码:
#启用透明背景
get_tree().root.set_transparent_background(true)
![1da887d55d210e296d05b9d9a1fc7050.png](https://img-blog.csdnimg.cn/img_convert/1da887d55d210e296d05b9d9a1fc7050.png)
这样子,就成功启用了透明背景,再次运行项目,背景就是透明的了。
如图所示:
![cfed9c7d060b7bd3df4bf6739407180a.gif](https://img-blog.csdnimg.cn/img_convert/cfed9c7d060b7bd3df4bf6739407180a.gif)
这就是使用godot游戏引擎实现透明背景的方法,可以实现透明窗口,不规则窗口,桌宠等功能。在2D和3D都有效。
在旧版本的godot中透明背景支持点击穿透(通过透明部分点击到后面的窗口),在3.2.2版本的更新中点击穿透功能被移除了,使用3.2.2版本时点击透明部分不会选择到后面的窗口。