第十六篇:关于Unity开发WebGL遇到的坑

article/2025/6/30 20:12:40

1、资源消耗问题。

Unity开发Web 项目,发布出来的项目是很消耗内存资源的,这是Unity引擎决定,我们要做的就是尽可能的优化,通常的方法有降低模型面数,降低贴图的大小,减少点光源,减小烘焙贴图大小等。当然也可以使用three.js开发Web端的三维项目,感兴趣的朋友可以去了解学习一下,但是毕竟它不像Unity有这么集成良好的平台,所以开发起来会比Unity慢很多的,同时还要求你有很好的代码能力和OpenGL知识。

2、连接数据库问题。

Unity连接数据库相信很多人都很熟练了,但是发布成WebGL后就无效了,因为Unity发布WebGL是不支持直连数据库的。那怎么办呢?现在最常见的办法就是Unity传消息到JS页面,然后JS页面再去获取数据库数据,然后传回到Unity中。也就是说JS充当了Unity和数据库之间的一个中转站。
在这里插入图片描述
(1)Unity向JS界面传递消息的方法是下面这个:
Application.ExternalCall("SayHello", s);
SayHello是在JS界面定义的方法,s是需要传过去的一个string类型的值。

(2)打包出WebGL后,打开Html页面,编写如下代码:

function SayHello(){    SendMessage("Main Camera", "Receive", s);   
}  

SayHello是定义的方法,在Unity中调用,SendMessage是传值回Unity的函数,里面的参数:第一个,Unity中绑定接收方法的对象,第二个,Unity中定义的用于接收值的方法,第三个,传回去的string类型的值。

3、视频播放问题。

通常我们最常用的视频播放方法是使用Unity自带的Video Player 组件,可是当我发布出WebGL的时候,他是没用的,所以今天给大家推荐一个一个名为Simple MovieTextures for Unity WebGL的Unity插件,插件下载链接:
(https://download.csdn.net/download/dianmoliu/10436690?utm_source=bbsseo)这是一位博友提供的。
导入插件后,可以看到Sample中有一个demo场景和VideoTest脚本,打开SampleScene场景,并打开VideoTest脚本查看使用方法。场景中只包括一个Cube,将脚本放入并生成WebGL即可看到播放效果。(注意,不能直接调试!)
代码分析
打开 VideoTest脚本,对代码进行分析。

头文件(除了两个基本的,还要加入第三个)

using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;

Start()方法

  WebGLMovieTexture tex;    //创建视频纹理信息public GameObject cube;    //选取视频播放所用的Cubevoid Start () {tex = new WebGLMovieTexture("StreamingAssets/Chrome_ImF.mp4");cube.GetComponent<MeshRenderer>().material = new Material (Shader.Find("Diffuse"));cube.GetComponent<MeshRenderer>().material.mainTexture = tex;}

Update()方法

void Update(){tex.Update();cube.transform.Rotate (Time.deltaTime * 10, Time.deltaTime * 30, 0);}
并且提供了GUI控件功能void OnGUI(){GUI.enabled = tex.isReady;GUILayout.BeginHorizontal();if (GUILayout.Button("Play"))    //播放按钮tex.Play();if (GUILayout.Button("Pause"))    //暂停按钮tex.Pause();tex.loop = GUILayout.Toggle(tex.loop, "Loop");    //是否循环GUILayout.EndHorizontal();var oldT = tex.time;var newT = GUILayout.HorizontalSlider (tex.time, 0.0f, tex.duration);if (!Mathf.Approximately(oldT, newT))tex.Seek(newT);GUI.enabled = true;}

这个方法只能打包成WebGL才能测试,大家可以根据实际需求修改代码。

4、弹框报错问题。

在最后发布出来之后我发现页面经常会报弹框报错,而点击确定后又不影响运行,代码也不报错,一开始不知道该如何解决,后来就想了一下强制关闭的方法,打包成WebGL后,在Build文件夹里会看到一个UnityLoader的文件
在这里插入图片描述打开UnityLoader,可以用这个软件打开
在这里插入图片描述
找到弹框信息对应的代码出,把代码注释掉就不会再报错了,当然不是所有的弹框报错都这么做,首先先排除不是Unity和JS代码方面的原因。
在这里插入图片描述
找到console开头的就是弹出框的信息,找到对应的注释掉就可以了。


http://chatgpt.dhexx.cn/article/Rhc4oi1i.shtml

相关文章

Unity 基础开发-WebGL发布无法运行问题

项目需要发布webGL项目&#xff0c;之前测试过本地可以在火狐浏览器上运行&#xff0c;Unity也支持发布&#xff0c;发布效率比较慢&#xff0c;支持的内容比较少。在做测试的时候还是遇到了问题。 Unity版本 20182.4f 火狐浏览器版本69.0.3&#xff08;64位&#xff09; 遇…

Unity开发WebGL项目开发问题与解决方法汇总

因公司需要做一个在集成在公司平台产品上的unity仿真教学项目&#xff0c;开始了解unityWebGL的内容&#xff0c;统计下其中遇到的一些坑和解决方法的总结&#xff0c;于是有了这篇文章。对于unity我是一个初学者&#xff0c;所以很多东西不是很理解&#xff0c;遇到不会的地方…

webgl常见报错

案例1 texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible tex解决办法&#xff1a;有可能是你加载的图片不是2的幂次方尺寸的图片&#xff0c;然后你又在代码中使用了必须使用2的幂次方尺寸纹理才能做的特效&#xff0c;比如…

【UnityWebGL】导出WebGL的问题汇总(持续更新)

项目场景&#xff1a; 今天做Unity项目在导出WebGL的时候遇到一些问题&#xff0c;打算开个帖子记录一下我的Unity开发经历 问题描述 问题1&#xff1a; 导出WebGL后&#xff0c;谷歌显示器无法打开&#xff0c;显示It seems your browser does not support running Unity W…

webGL artifacts\WebGL\Build 报错问题解决思路

webGL artifacts\WebGL\Build 报错问题解决思路 方法一&#xff1a;重新安装UnitySetup-WebGL-Support-for-Editor 方法二&#xff1a;删除项目目录下的Library

【Unity】开发WebGL内存概念详解和遇到的问题

自加入unity WebGL平台以来&#xff0c;Unity的开发团队就一直致力于优化WebGL的内存消耗。我们已经在Unity使用手册上有对于WebGL内存管理的详尽分析&#xff0c;甚至在Unite Europe 2015与Unite Boston 2015两届大会上&#xff0c;也有专题对其进行深入的讲解。然而&#xff…

Unity WebGL项目打包后本地打开报错问题解决方法

在Unity打包WebGL项目后&#xff0c;本地打开html页面出现错误提示。 Failed to download file Build/Unity Web.data.gz. Loading web pages via a file:// URL without a web server is not supported by this browser. 在网上试了好几种方法&#xff0c;综合起来终于跑起来…

Unity WebGL错误集锦

ips: 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace &#xff0c;可以在打出的包中的浏览器的webgl打印出错误调用栈&#xff0c;具体在哪个Setting取决于unity的版本 1 一般出现了错误 可以看看在浏览器里面传的…

Unity在网页上运行WebGL问题

Unity在网页上运行WebGL问题&#xff1a;It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser 前言Unity打包WebGL在网页上运行遇到的问题解决方法 前言 项目要开发B/S模…

Unity 之 发布 WebGl 遇到的问题

最近发布的WebGL的时候遇到了些问题&#xff0c;上网查了一下&#xff0c;说法不一&#xff0c;又说和发布目录有关的&#xff08;这个我试了发布到桌面上也是可以的&#xff0c;建议发布在和项目同级目录下&#xff09;&#xff0c;也有说需要下载Unity 的补丁的&#xff08;我…

Unity打包WebGL的全过程及在打包和使用过程中会遇到的问题

目录 概要 Unity打包WebGL PlayerSettings设置 Resolution and Presentation Other Settings Publishing Settings 本地服务器测试环境配置 问题盘点 概要 盘点Unity在Build WebGL环境包时需要的配置以及遇到的难题 Unity打包WebGL PlayerSettings设置 Resolution and…

Unity WebGL 遇到的各种问题

内容持续更新&#xff01;如果你有遇到过奇怪的问题&#xff0c;也可以在评论局反馈。 1.Unity 发布WebGL1.0版本&#xff0c;需要把程序包控制在100M以内。 提示1&#xff1a;RangeError: Start offset undefined is outside the bounds of the buffer&#xff08;开始偏移量…

【unity发布webgl】遇到的问题和解决办法

1.发布部署出来的链接放到手机上测试。 ios&#xff1a;20秒读条然后闪退&#xff1b;vivo:9秒读条闪退&#xff1b;小米&#xff1a;15秒进入 然鹅&#xff0c;资料只有130kb的图片。 2.报这个警告&#xff0c;修改Build文件夹里的UnityLoader.js取消 移动端展示弹出提示框&a…

【Unity】打包WebGL项目遇到的问题及解决记录

目录 Unity中打包时注意事项切换平台为WebGL平台设置Player Setting分辨率预设其它设置发布设置确保项目路径没有中文 选择Assets同级目录打包 打包后将项目部署到IIS上发布安装IIS并添加网站为服务器添加 MIME Type 映射和跨域访问权限添加MIME Type映射添加跨域访问权限 尝试…

发布WebGL遇到的问题

本文地址&#xff1a;https://blog.csdn.net/t163361/article/details/129734803 最近准备申请新星创作者&#xff0c;需要2000个粉丝关注&#xff0c;觉得文章有用的&#xff0c;请点一下左侧边栏的关注&#xff0c;谢谢。 以下为发布WebGL时遇到的问题以及解决方案。相同的问…

关于Webgl实际中遇到的一些坑,与大家分享。

我们在webgl的开发中&#xff0c;可能会遇到这样或者那样的问题&#xff0c;在这里与大家分享。 首先&#xff0c;我们要懂得如何找到问题。 打开Firefox火狐浏览器的web控制台。 这样我们更可以知道哪一个环节出了问题&#xff0c;就可以对症下药&#xff0c;解决问题。节省…

个性化推荐系统 - 01简述

前言 在互联网发展的早期,内容比较匮乏,不论在资讯,电商,还是广告行业。那个阶段诞生了搜索引擎。解决了信息查找的问题。随着互联网迅速发展起来,互联网上面的内容几何式增长。用户获取信息的途径不再困难。怎么样在海量的信息中找到用户感兴趣的内容,就是我们现在要解决的问…

4个方面,系统总结个性化推荐系统

作者&#xff1a;Placeless 全文共 7393 字 13 图&#xff0c;阅读需要 16 分钟 ———— / BEGIN / ———— 现在的人们面对信息过载问题日益严重&#xff0c;好的个性化推荐将能够很好的提升用户体验&#xff0c;提高用户使用产品完成任务的效率&#xff0c;更好的留住用户&…

推荐系统基础(2):个性化推荐系统简述

1.推荐系统含义、目标 推荐系统根据用户的历史、社交、上下文环境等信息去判断用户当前感兴趣的内容。 推荐系统的业务&#xff1a; 物料组装&#xff1a;生产广告&#xff0c;实现文案、图片等内容的个性化物料召回&#xff1a;在大量内容中召回一个子集作为推荐的内容物料…

CSDN个性化推荐系统-负反馈测试

文章目录 前言一、uc不感兴趣标签过滤测试1.uc不感兴趣标签获取(uc_unlike_tag_list)1.1个人中心界面1.2从标签中可以发现什么&#xff1f;1.3与研发确认点1.4设计开发1.5接口获取结果 2.推荐流文章标签获取(tag_list)2.1部分代码2.2基本标签校验2.3基本标签校验结果 3.推荐流u…