Json 在Unity游戏中保存数据的最佳方法
我在想。。。在Unity游戏中保存数据的最佳方式是什么。杰森?如果是,怎么做?谢谢以下是Unity项目保存数据的一些不同方式和方法:Json 在Unity游戏中保存数据的最佳方法,json,unity3d,persistence,unity5,saving-data,Json,Unity3d,Persistence,Unity5,Saving Data,我在想。。。在Unity游戏中保存数据的最佳方式是什么。杰森?如果是,怎么做?谢谢以下是Unity项目保存数据的一些不同方式和方法: 独立于平台:以独立于平台的方式在Unity3D中保存数据的一种方法是使用类。(了解更多信息,,)。PlayerPrefs是一个静态类,很容易使用,但不可靠 持久化-使用DontDestroyOnLoad、PlayerPrefs和数据序列化保存和加载数据 服务器端:您还可以使用服务器来保存数据(如PHP和MySQL数据库的组合)。您可以使用它保存分数数据、用户配
以上内容摘自我的。您可以使用许多在资产存储中免费和付费的资产 -XML和JSON保存和加载 语法:
Saver.Save(T数据,字符串文件名);
例如:
Saver.Save(myData,“myData”);//.json扩展名将自动添加
-二进制保存和加载。又快又安全。易于使用
语法:
SaveGame.Save(T数据,字符串标识符);
例如:
SaveGame.Save(score,“score”);
如果您想在服务器中存储数据,有一种使用PHP和MySQL的简单方法。你要做的是:
第一步:只需一个字符串即可从服务器获取所需的数据(代码如下所示): 第四步:
您刚刚从数据库检索到数据,请检查unity console中的图像:
我为那些可能像我一样陷入数据库问题的人做了这个 假设我有几个事件一个接一个地发生,这些事件将通过web服务器不时更新,要在设备中保存所有事件数据,我应该使用什么?序列化、保存所有事件的数据并稍后更新数据是否正常?我所看到的只是保存和加载&在序列化tutuorials中没有编辑或更新。它会清理旧数据来保存新数据吗?@Zoedia我想你最好单独问一些重要的细节问题。所以也许我能理解并回答一个很好的答案,很遗憾地看到#1项玩家优先权这导致人们将数据保存在不安全的地方。但答案仍然非常清楚。@JeroenDeClercq#1是unity应用程序中最容易保存数据的。我不知道它是否不安全。如果有人想在没有第三方库的情况下使用JSON路径,Unity有一些官方JSON序列化工具,我认为您的代码中的
$reuslt
(三个实例)是一个打字错误。顺便说一句,当您看到发送给您的消息时,请务必回复它们。我已经否决了这个问题,一旦你回答了,我就不再投票。请愿意在必要时进行编辑,以造福未来的读者。对不起,我刚刚在做一个非常严肃的项目,我只是在可能的时候过来,顺便说一句,对于编辑人,我会改革它。。。
<?php
//SERVER CONNECTION
$server_name = "localhost";
$server_user = "Er.Ellison";
$server_pass = "supersecretPassword";
$server_db = "game_test_db";
$connection = new mysqli($server_name , $server_user , $server_pass , $server_db);
if(!$connection) {
die("Connection failed !" . mysqli_connect_error());
}
// QUERY
$query = "SELECT * FROM items";
$result = mysqli_query($connection , $query);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
echo "id:" . $row['id'] . "|username:" . $row['username'] . "|type:" . $row['type'] . "|score:" . $row['score'] . ";";
}
}
?>
public class DataLoader : MonoBehaviour {
public string[] items;
// Use this for initialization
IEnumerator Start () {
WWW itemsData = new WWW ("http://localhost/_game/test/itemsdata.php");
yield return itemsData;
string itemsDataStrign = itemsData.text;
print (itemsDataStrign);
items = itemsDataStrign.Split (';');
print (GetDataValue(items[0] , "cost:"));
}
string GetDataValue(string data, string index) {
string value = data.Substring (data.IndexOf(index) + index.Length);
if (value.Contains ("|")) {
value = value.Remove (value.IndexOf("|"));
}
return value;
}
}