Unity Web播放器不支持C#BinaryFormatter

时间:2015-12-15 16:23:58

标签: c# unity3d webdeploy

我有一个存储得分的游戏,登录后加载来自binaryFormatter C#的得分,但它显然在Unity编辑器和其他平台上运行,但它无法在统一网络播放器上运行。我的.unity3D文件已在谷歌硬盘上传,并与所有人共享,可以编辑任何人,.html文件在WEEBLY网络主机上,带有嵌入代码。

所以我想问一下,无论如何存储值并加载值而不使用playerpref和binaryFormatter。

2 个答案:

答案 0 :(得分:0)

您可以使用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 :(得分:0)

简短回答是有的!

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

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

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

2.通过简单的TCP连接或更高级的方式(如HTTP-POST请求)发送数据。这样做可确保您的转移安全。

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