记录自己在unity wegl在网络请求以及JS和c#代码互调的坑

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.首先,打包注意事项:

①压缩方式选择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,还有就是一个密钥一个偏移量,这里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值