Unity Web 播放器不支持 C# 二进制格式化程序



我有一个游戏,其中存储了分数,登录后从binaryFormatter C#加载分数,但它显然在unity编辑器和其他平台中运行,但无法在unity web播放器上运行。我的.unity3D文件已上传到谷歌驱动器上,并与所有人共享,可以编辑任何人,.html文件在WEEBLY网络在线主机上嵌入代码。

所以我想问,在不使用playerpref和binaryFormatter的情况下,是否有存储值和加载值的方法。

您可以使用WWW类执行HTTP GET/POST请求并发送数据。

WWW www = new WWW("http://www.domain.com/send_score.php?user=23&score=42");

您还可以检索数据。

WWW www = new WWW("http://www.domain.com/get_score.php?user=23"); // The response body is an integer.
yield return www;
int score = (int)www.text;

请注意,这是不安全的。任何知道URL的人都可以在执行请求时(例如通过浏览器)注入虚假数据。也许一些密码学技术可以在这里帮助你。

简短回答是的!

我不确定我是否理解你的问题,你想在本地或服务器上保存分数?

要通过网络发送您的对象,您需要:

1.制作一个字节数组,您可以使用其他类型的序列化,如Google的ProtoBuf和JSON。如果它只是一个简单的分数,您可以将其更改为字符串,而不需要序列化。重要的是,您有一种方法可以将对象更改为一系列字节,反之亦然。(序列化和反序列化)

2.通过简单的TCP连接或HTTP-POST请求等更高级的方式发送数据。在这样做的过程中,请确保您的转移是安全的。

如果您只想在设备中(本地)保存分数,您可以序列化数据并将其写入文件,也可以使用Sqlite在本地使用lite数据库。您可以使用一些安全措施来防止数据篡改。在您的情况下,我认为SOOMLA框架是一个很好的解决方案。

最新更新