一.首先,打包注意事项:
①压缩方式选择Brotili,Gzip速度不如Brotili快,这是webgl上写的,毋庸置疑。我看过说Brotili快的,也看过说Gzip快的。准确的说应该是,Brotili加载快,但是打包过程比较慢,Gzip反之。还有第三种disable,这种就是不压缩文件,加载速度最快。根据需求自己选择吧。
②EnableExceptions选择FullofStacks,方便打包后在网页上F12查看Debug的消息以及报错。这点很重要,跟前端好好学了学才会使用
二.网络请求
1.我用的是新的UnitywebRequest类的方法,编辑状态下网络请求的时候是需要用到unitywebrequest.SetRequestHeader("Cookie","231314325345fsdf")这个方法去设置cookie的,没有涉及到跨域的问题。然而打包成webgl后运行到这一句代码就会报错,因为一般webgl下是不允许设置cookie的,除非是后端有setcookie的接口。通过了解又知道如果没有出现跨域的情况,cookie会在登录成功后自己在下一次网络请求中带上,所以我们把打包后的webgl放在了具体网页中,网页登录后再发送网络请求就没问题了。总之,要注意两个问题,一就是webgl不能像编辑状态下一样设置cookie,二就是webgl中cookie自己会带上不用设置。
2.后来因为想完全自主实现网络请求不借助前端网页的帮助。所以又研究了一下加密问题,我们的项目中用到的是CryptoJS的加密方式,加密方式分为对称加密和非对称加密,加密的时候主要是三个参数,一个就是需要加密的文本,一般都是JSON的string,还有就是一个密钥一个偏移量,这里面东西又多了,我只是网上找到了这种加密方式的C#方法,使用了一下。
三.js与C#通讯
在多次尝试中使用了三种C#调用JS方法的方法,一种js调用C#方法的方法。
①.Application.ExternalCall("functionname",params);简单粗暴,直接调用,但是,这个JS的方法目前我知道只能是写在打包后的index.html文件里,编辑器打开此文件,在script
Unity WebGL网络请求与JS-C#交互实践及陷阱

本文详细记录了Unity WebGL在打包时的注意事项,包括压缩选项和异常处理。在网络请求方面,讨论了UnityWebRequest在编辑器与WebGL的不同行为,以及解决跨域和设置cookie的问题。此外,还探讨了C#与JavaScript之间的通信方法,包括ExternalCall、ExternalEval、jslib和JS调用C#的方法,特别提醒了使用过程中的一些常见错误和最佳实践。最后,提供了一个链接以供进一步参考。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



