Unity导出WebGL使用 http与服务器通讯;Jsp与服务器互通解决方案、踩坑记录、注意事项

这两天做了一个项目,从已有的通讯框架基础上修改。使Unity导出的WebGL的包能和服务器通讯,Jsp页面也能和服务器通讯。第一次做通讯的项目。踩了不少坑记录一下。
本次使用的通讯框架服务器是java、客户端是Unity开发的。使用 http 实现弱联网的简单通讯

Unity开发WebGL注意事项

1、导出WebGL包时,目录路径不能有中文

2、打出来的Web页面显示不出中文来,是因为web页面不能获取系统的字体,所以项目中使用的字体文件要导入项目中

3、在Unity3d 2017中www加载如果没有问题时www.error不在是等于null,而是""。以前版本中关于类似www.error != null的判断将失效。

4、如果web页面报404了,有时候是因为程序中连接地址填错了。

5、在这次开发遇到了,服务器能收到web的消息,但是web收不到服务器的消息。web页面报错了。是因为跨域问题,解决方案:在服务器端给客户端输出的函数中,添加:response.setHeader(“Access-Control-Allow-Origin”, “*”)。就ok了

6、WebGL不支持多线程和C#的网络环境,可以用协程、Websocket代替;(在携程中千万别用死循环哦 ! )

7、WebGL在服务器下载资源,服务器端尽量能做到资源拆分,或者资源依赖打包。不然Web页面加载时间过长影响体验

修改java服务器注意事项

配置拦截、中文乱码

1、在修改服务器端的代码时,新加一个处理数据的java脚本客户端访问不到,报:404错误(The requested resource (******) is not available.);是因为需要配置拦截器,找到服务器端的Web.XML文件,应该WebRoot→WEB-INF文件夹下。配置你新加的脚本就可以了,配置内容如下:

 <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>TestHandle</servlet-name>
    <servlet-class>com.Gallon.Servlets.TestHandle</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>TestHandle</servlet-name>
    <url-pattern>/TestHandle.do</url-pattern>
</servlet-mapping>

在上面:TestHandle 换成你自己新加的脚本名就可以了。

2、服务器与Jsp页面连接时,出现了中文乱码的问题,解决方案:
(1)Jsp使用 post 通讯中文乱码:服务器端在 post 函数二次编码:在函数里面加一句:request.setCharacterEncoding(“UTF-8”);在控制台打印验证就ok了。
(2) Jsp使用 get 通讯中文乱码:有点麻烦,去问度娘吧,或者jsp页面别用Get传输数据了。

WebGL使用浏览器打不开的问题:

WebGL兼容这里只写了:Edge、谷歌、火狐、IE

1、Firefox(火狐)打不开WebGL的解决方案
(1)打开火狐,在地址栏搜索:about:config:回车→继续
(2)在选项顶部搜索 webgl.force-enabled ;将该选项值设为false
(3)再次搜索:webgl.disabled ;将该选项的值设为false
(4)再次搜索:security.fileuri.strict_origin_policy ;将该选项设为false

2、Chrom(谷歌)打不开WebGL的解决方案
. . Windows: 找到谷歌浏览起的快捷方式,鼠标右击,进入属性,设置Chrome的快捷方式属性,在“目标”后面加上 --enable-webgl --ignore-gpu-blacklist --allow-file-access-from-files,注意前面有个空格,重新打开Chrome即可。
. .(如果你不是WebGL的开发者可以不用加 --allow-file-access-from-files)
谷歌chrome://flags/ 里面找到WebGL2.0 都 开启

3、Edge:我使用的Microsoft Edge 不经过任何设置 本身就支持WebGL。

4、IE:万能的神,我找的资料都说是E11之后就支持WebGL了,但是我的IE就是打不开,直到现在还没有找到解决方案,以后如果发现解决方案会随时更新。

最后甩一个测试你浏览器支不支持webGL的网址:https://get.webgl.org/

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity导出WebGL时,可以使用动态获取模型文件的方法。首先,需要将模型文件以可访问的方式加载到Unity的资源目录中。这可以通过将模型文件放置在StreamingAssets文件夹中实现。该文件夹的内容将被打包到WebGL构建中,并可以在运行时访问。 创建一个用于加载模型文件的脚本。脚本应该包括一个公共函数,该函数可以接受模型文件的路径,并返回加载的模型对象。在函数内部,可以使用Unity的WWW类来加载模型文件。使用StreamingAssets文件夹的路径和模型文件的路径创建一个完整的URL。然后,使用WWW类的构造函数并传递该URL来加载模型文件。 一旦模型文件加载完成,可以根据应用的需求对其进行处理。例如,可以使用Unity的Instantiate函数将模型实例化到场景中,或将其用作角色模型、道具或其他游戏资产。 在Unity中,可以将模型文件导出WebGL构建。通过依次选择“文件”→“构建设置”→“WebGL”,可以打开WebGL构建设置窗口。在窗口中,可以设置构建的目标文件夹、名称和其他设置。然后,点击“构建”按钮开始构建WebGL版本。 构建完成后,将生成一个包含所有必要文件的文件夹。此文件夹可以使用Web服务器进行托管,或直接通过浏览器打开。在浏览器中运行时,UnityWebGL版本将动态获取模型文件并加载到场景中,实现动态获取模型文件的效果。 这是使用Unity导出WebGL并动态获取模型文件的一种方法。通过按照上述步骤设置和执行,您将能够在WebGL版本中实现动态加载模型的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值