相关疑难解决方法(0)

在Unity中序列化和反序列化Json和Json数组

我有一个从PHP文件发送到Unity的项目列表WWW.

WWW.text样子:

[
    {
        "playerId": "1",
        "playerLoc": "Powai"
    },
    {
        "playerId": "2",
        "playerLoc": "Andheri"
    },
    {
        "playerId": "3",
        "playerLoc": "Churchgate"
    }
]
Run Code Online (Sandbox Code Playgroud)

[]从哪里修剪额外的string.当我尝试使用它解析它时Boomlagoon.JSON,只检索第一个对象.我发现我已经到deserialize()了列表并导入了MiniJSON.

但我很困惑如何deserialize()这个列表.我想遍历每个JSON对象并检索数据.如何使用C#在Unity中执行此操作?

我正在使用的课程是

public class player
{
    public string playerId { get; set; }
    public string playerLoc { get; set; }
    public string playerNick { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

修剪后[]我可以使用MiniJSON解析json.但它只返回第一个KeyValuePair.

IDictionary<string, object> players = Json.Deserialize(serviceData) as IDictionary<string, object>;

foreach (KeyValuePair<string, …
Run Code Online (Sandbox Code Playgroud)

c# json unity-game-engine

81
推荐指数
3
解决办法
11万
查看次数

保存游戏状态的最佳方法是什么?

我找到了在Unity3D游戏引擎中保存游戏数据的最佳方法.
首先,我使用了序列化对象BinaryFormatter.

但我听说这种方式存在一些问题,不适合保存.
那么,保存游戏状态的最佳或推荐方法是什么?

在我的例子中,保存格式必须是字节数组.

c# savestate unity-game-engine

10
推荐指数
1
解决办法
9348
查看次数

退出应用时保存游戏

我正在制作一个团结C#的游戏.我有代码保存本地并为游戏保存云.当按下游戏保存然后退出时,我按下一个按钮退出.

但我在这里保存的游戏有问题.当某人或玩家按下设备移动设备上的主页按钮时,游戏将退出并在后台运行.

如果玩家重启设备,则在后台运行的游戏将不会保存到本地或云端.这就是问题.

所以在统一当主页按钮按下设备移动时,统一会做什么?这是暂停应用程序/游戏或其他什么?如果玩家按下主页按钮,我们可以做什么?

如果暂停应用程序/游戏,我们可以在玩家按下主页按钮时首先检测到它,我们可以保存游戏吗?(我的意思是在按下按钮后运行代码)

或者根据你的经验,如果玩家按下主页按钮会怎么做?这是为了让玩家不丢失游戏数据.

请详细说明我找到解决方案.

对于继续比赛,任何帮助都会很棒:)

谢谢

丹尼斯

c# unity-game-engine

4
推荐指数
1
解决办法
3278
查看次数

如何将 bool 保存到 PlayerPrefs Unity

我为我的游戏设置了一个支付系统,这是我的代码:

 void Start()
 {
     T55.interactable = false;
     Tiger2.interactable = false;
     Cobra.interactable = false;
 }

 public void ProcessPurchase (ShopItem item)
 {
     if(item .SKU =="tank")
     {
         StoreHandler .Instance .Consume (item );
     }
 }

 public void OnConsumeFinished (ShopItem item)
 {
     if(item .SKU =="tank")
     {
         T55.interactable = true;
         Tiger2.interactable = true;
         Cobra.interactable = true;
     }
 }
Run Code Online (Sandbox Code Playgroud)

现在,每次玩家在游戏中购买东西时,我的 3 个按钮的棘手性都会变为真;但问题是每次他关闭游戏时,顽固性都会回到错误状态。

我应该保存这个过程,这样玩家就不必再次购买将它们设置回 true 吗?

c# payment save unity-game-engine

3
推荐指数
1
解决办法
1万
查看次数

如何在Unity3D中保存自定义变量?

我正在为Unity3D中的游戏开发一个保存和加载系统.像位置这样的基础很简单,我就是这样

 public void Save() {

     PlayerPrefs.SetFloat ("X", transform.position.x);
     PlayerPrefs.SetFloat ("Y", transform.position.y);
     PlayerPrefs.SetFloat ("Z", transform.position.z);

 }

 public void Load() {

     float x = PlayerPrefs.GetFloat ("X");
     float y = PlayerPrefs.GetFloat ("Y");
     float z = PlayerPrefs.GetFloat ("Z");

     transform.position = new Vector3 (x, y, z);

 }
Run Code Online (Sandbox Code Playgroud)

但是当我想要保存自定义变量时,它就出现了.以下是包含它们的类如下所示:

     [SerializeField] private Stat health; 
     public static Stat Health { get; set; }
     [SerializeField] private Stat exp;
     public static Stat Exp { get; set; }
     [SerializeField] private Stat oxygen;
     public static Stat Oxygen { get; set; }
     [SerializeField] …
Run Code Online (Sandbox Code Playgroud)

c# variables serialization unity-game-engine unity5

2
推荐指数
1
解决办法
285
查看次数