Unity WebGL网页背景透明化(2021更新)

针对上一篇文章Unity网页透明化,做进一步补充完善。

效果演示

Unity中

在这里插入图片描述

网页中

在这里插入图片描述
在这里插入图片描述

实现过程(以Unity2018.4.2f1为例)

1.创建.jslib文件,文件内容如下:

var LibraryGLClear = {
    glClear: function(mask)
    {
        if (mask == 0x00004000)
        {
            var v = GLctx.getParameter(GLctx.COLOR_WRITEMASK);
            if (!v[0] && !v[1] && !v[2] && v[3])
                // We are trying to clear alpha only -- skip.
                return;
        }
        GLctx.clear(mask);
    }
};
mergeInto(LibraryManager.library, LibraryGLClear); 

注意 Mac系统中,文本文档编码问题,可能会导致修改后缀之后乱码。
命名随意,放在Asset文件夹下任意位置,
在这里插入图片描述
文件链接: https://pan.baidu.com/s/1j8LFBHwbPCDhgIzOBOr0Ww 密码:6f7l

2.修改Camera相机参数

修改Clear Flags 为Solid Color

在这里插入图片描述
Background 中 Alpha值为0。
在这里插入图片描述

3.打包。

经测试,并不需要修改打包设置,默认即可。

4.修改Build文件夹下的json文件

在这里插入图片描述
将 “backgroundColor”: 的参数修改为"transparent",

完整代码

{
"companyName": "DefaultCompany",
"productName": "NewTM",
"dataUrl": "newtm.data.unityweb",
"wasmCodeUrl": "newtm.wasm.code.unityweb",
"wasmFrameworkUrl": "newtm.wasm.framework.unityweb",
"TOTAL_MEMORY": 268435456,
"graphicsAPI": ["WebGL 2.0", "WebGL 1.0"],
"webglContextAttributes": {"preserveDrawingBuffer": false},
"splashScreenStyle": "Dark",
"backgroundColor": "transparent",	
"cacheControl": {"default": "must-revalidate"}
}

5.打开index.html查看效果即可

在这里插入图片描述

PostProcess后处理

若用相机后处理插件PostProcess,颜色会异常,因为背景颜色透明后,是根据html颜色来判定Bloom的。

色彩空间-Gamma与 Linear

在Unity2018中,需将打包设置中的ColorSpace设置为Gamma空间,若设置为Linear空间,则透明无效。

在Unity2020中,使用LInear也可以透明化背景。

Unity2020打包后修改

Unity2020打包后的网页结构和2018区别很大,没有json文件了。

需要将html文件中的

<canvas id="unity-canvas" width=1920 height=1080 ></canvas>

修改为

<canvas id="unity-canvas" width=1920 height=1080 style="width: 1920px; height: 1080px; background: transparent"></canvas>

粒子消失问题

粒子不要用默认的材质,自定义一个材质就可以了。

最后

项目和Demo链接:https://download.csdn.net/download/boyZhenGui/12330739

积分不够的朋友可以私信我。

如果对你有帮助,可以收藏一下。顺手给我点个赞就更好啦,谢谢。

参考资料:
https://support.unity3d.com/hc/en-us/articles/208892946-How-can-I-make-the-canvas-transparent-on-WebGL-?_ga=2.179246048.597631836.1586496094-324193956.1586496094

https://forum.unity.com/threads/webgl-transparent-background.284699/?_ga=2.210898705.524976980.1586484471-1016004096.1586484471

主要是这篇帖子中chitzui的回答,不过经测试,并不需要修改打包参数,也可以完成背景透明化。
https://forum.unity.com/threads/webgl-with-transparency-on-the-cavas.327425/?_ga=2.34395042.2038369983.1586999210-215010673.1586999210

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
### 回答1: 在Unity2020中,我们可以通过以下步骤设置WebGL背景透明: 1. 打开Unity编辑器,并打开你的项目。 2. 在项目中,找到你想要设置为透明背景的场景。 3. 点击场景上的主摄像机,确保它被选中。 4. 在检查器面板中,找到摄像机组件。在“背景”一栏中,点击下拉菜单旁边的小锁图标,以解锁背景设置。 5. 在背景设置下拉菜单中,选择“Skybox”。 6. 确保“晴空颜色”选项未勾选。 7. 在右侧的色彩选择器中,将颜色的透明度值(Alpha)设置为0。 8. 点击场景视图中的“播放”按钮进行预览。 9. 如果你的背景成功设置为透明,则可以看到场景中的其他元素或背后的网页内容。 需要注意的是,要将WebGL背景设置为透明,你还需要在Unity WebGL构建设置中进行相关设置。可以按照以下步骤进行: 1. 点击Unity编辑器顶部的“文件”选项。 2. 在下拉菜单中选择“构建设置”。 3. 在构建设置窗口中,选择你要进行WebGL构建的平台。 4. 在右侧“播放器设置”选项中,展开“其他设置”。 5. 确保“分辨率与渲染”选项卡被选中。 6. 在“WebGL”区域中,将“使用32位深度缓冲区”选项取消勾选。 7. 将“透明窗口”选项勾选上。 8. 点击“构建”按钮,将项目导出为WebGL。 通过以上步骤,你可以在Unity2020中成功设置WebGL背景透明。这样,你的WebGL项目就能够在网页中呈现出透明背景的效果了。 ### 回答2: 在Unity2020中,想要设置WebGL背景透明,可以按照以下步骤进行操作。 首先,在Unity的场景编辑器中选择你想要设置透明的摄像机。确保该摄像机是用于渲染你想要显示的对象和场景。 然后,在摄像机的属性面板中,找到"背景"选项。点击该选项后,你可以看到可以选择背景颜色的选项,以及一个透明度滑块。 将透明度滑块调整为0,这样摄像机的背景就会变得完全透明。 接下来,点击Unity编辑器顶部菜单栏中的"文件"选项,然后选择"构建设置"。 在弹出的"构建设置"窗口中,找到"平台"选项卡,并选择"WebGL"平台。 在"WebGL"平台选项卡中,找到"PlayerSettings"选项,点击展开该选项。 在展开的"PlayerSettings"选项下,找到"Resolution and Presentation"(分辨率和显示)子选项。 在"Resolution and Presentation"选项中,将"WebGL Template"(WebGL模板)设置为"Minimal"(最小化)。 最后,点击"Build"(构建)按钮生成WebGL项目。 以上就是在Unity2020中设置WebGL背景透明的方法。通过这些步骤,你可以轻松地设置透明背景,以便在WebGL项目中实现更多自定义和特效。 ### 回答3: 在Unity 2020中,我们可以通过几个简单的步骤来设置WebGL背景透明。下面是详细的说明: 1. 打开Unity编辑器,并打开你的项目。 2. 在场景视图中选择你想要设置透明背景的摄像机。 3. 在摄像机的Inspector面板中,找到Clear Flags(清除标志)设置。 4. 将Clear Flags设置为Solid Color(纯色)。 5. 在Background(背景)颜色设置中,将透明度(alpha)值调整为0。 6. 点击Apply(应用)保存更改。 现在,当你将项目导出为WebGL时,你将看到背景已经设置为透明。在WebGL中,透明背景将允许你的游戏或应用程序的背景穿透,显示出底层网页或其他元素。这对于创建与网页交互的应用程序非常有用。 请注意,设置透明背景可能会导致性能下降,特别是在复杂的场景中。此外,某些浏览器WebGL透明支持可能不完全一致,因此在测试和发布之前,请确保在多个浏览器上进行测试并确保背景透明度正常显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真鬼123

祝你节节高升岁岁平安越来越漂亮

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值