我有一个存储得分的游戏,登录后加载来自binaryFormatter C#的得分,但它显然在Unity编辑器和其他平台上运行,但它无法在统一网络播放器上运行。我的.unity3D文件已在谷歌硬盘上传,并与所有人共享,可以编辑任何人,.html文件在WEEBLY网络主机上,带有嵌入代码。
所以我想问一下,无论如何存储值并加载值而不使用playerpref和binaryFormatter。
答案 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框架是一个很好的解决方案。