- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有谁知道如何更有效地将字典数据或数组列表数据保存到playerprefs?
例如我有一个类项目:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
// Make Class Item
public class item {
public string itemName;
public int itemID;
public string itemDesc;
public string itemIcon;
public GameObject itemModel;
public int itemTime;
public int hightprice;
public int stdprice;
public int itemStock;
public int harvest;
public RawTree rawTree;
public ItemType itemType;
public ItemProd itemProd;
public ItemLocation itemLocation;
public ItemMerchant itemMerchant;
public int Lvlunlock;
private string baseName;
public int spawnRate;
public int minqtySpawnBuy;
public int maxqtySpawnBuy;
public int minqtySpawnSell;
public int maxqtySpawnSell;
public int itemExp;
public enum ItemType {
Raw,
Admirable,
Valuable
}
public enum RawTree {
BigTree,
SmallTree,
Field,
None
}
public enum ItemProd {
Corps,
Dairy,
JuiceJamMaker,
Kitchen,
Bakery,
CraftHouse,
ChickenCoop,
FishingSpotMountain,
CowPasture,
LunaMine,
PigPen,
FishingSpotLake,
TropicalWood,
SheepPasture,
FishingSpotSea,
Beebox,
HomeIndustry,
Merchant
}
public enum ItemLocation {
Home,
Orchard,
Forest
}
public enum ItemMerchant {
Margaret,
Lucy,
Bobby,
Roger,
Grace
}
public item (string name, int ID, string desc, int harvestx, int time, int stdpricex, int hightpricex, int stock, int Lvlunlockx, RawTree RawTree, ItemType type, ItemProd prod, string folderx, ItemLocation location, ItemMerchant merchant, int rate, int minspawnBuy, int maxspawnBuy, int minspawnSell, int maxspawnSell, int Exp) {
itemName = name;
itemID = ID;
itemDesc = desc;
harvest = harvestx;
itemTime = time;
stdprice = stdpricex;
hightprice = hightpricex;
itemStock = stock;
Lvlunlock = Lvlunlockx;
rawTree = RawTree;
itemType = type;
itemProd = prod;
itemIcon = folderx;
itemLocation = location;
itemMerchant = merchant;
spawnRate = rate;
minqtySpawnBuy = minspawnBuy;
maxqtySpawnBuy = maxspawnBuy;
minqtySpawnSell = minspawnSell;
maxqtySpawnSell = maxspawnSell;
itemExp = Exp;
}
public item() {
}
}
然后我将创建一个列表项:
public List<item> items = new List<item> ();
首先:如何更有效地将元素保存到播放器偏好?
例如我有字典上的数据:
public Dictionary <string, Dictionary <string, int> > productSellMargaret;
第二个:如何更高效地将productSellMargaret保存到playerprefs?
如何将它们都保存到播放器偏好设置中,以便在退出游戏并使用继续数据再次玩游戏时继续调用数据?
最佳答案
一个准确的答案是
“不要将较大的数据保存到 PlayerPrefs”
PlayerPrefs
用于保存游戏设置等小值。将此类配置保存在 PlayerPrefs 中是一个很好的方法。
但是
在保存对象列表或嵌套字典等大规模数据时。建议保存到文件中。
我应该如何解析数据对象并将其保存到文件中?
有多种方法可以做到这一点。其中之一是使用 BinaryFormatter
序列化数据对象并使用 System.IO
将其保存在文件中。有关实现此目的的快速教程,我建议您引用:TutsPlus: How to Save and Load Your Players' Progress in Unity
同样,这只是一种方法。您也可以使用其他方法。 Unity的新JSON Serializer对您来说是另一个不错的选择。
如果您想使用 XML
而不是 JSON
,XML Serializer是一个不错的选择。
希望这对您有所帮助。
关于c# - 如何更有效地将字典数据或arraylist数据保存到playerprefs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38459689/
我一直在尝试访问在场景“主菜单”上创建的 PlayerPref,并且尝试在场景“1-1 级”中访问它,但它不起作用。我尝试过调试问题,这是我唯一的结论。我无法从其他场景访问玩家偏好设置 最佳答案 您很
我设置了一个简单的商店,当玩家点击“购买”一个角色时,该元素会解锁并保存为解锁状态。这是在一个场景中(商店场景)。 我有第二个场景,玩家可以根据这次购买解锁角色(角色场景)。 我将脚本放在每个场景的空
我有 3 个我想要的按钮,当我单击按钮 1 时,隐藏该按钮并显示所有带有 PlayerPrefs 的按钮,当我单击按钮 2 时,隐藏该按钮并显示所有带有 PlayerPrefs 的按钮我测试我的代码但
我想在 PlayerPrefs 中保存类型为 Myclass 的列表。 我看到一个在字符串中进行转换的示例,我该怎么做? public class MyClass{ private int
我有两个场景 MAP 和 GAME。 在 MAP 上,我想使用按钮上的变量(在检查器中)来构建 GAME 中的关卡。 我有三种游戏模式 {1, 2, 3}我也有一个分数需要达到{我希望能够设置这个分数
在我的一个项目中,我最初开始使用 float ,但过了一会儿我意识到它的精度并不是我想要的。我有一个自动化系统,每秒增加 X 个硬币的值(value),并且考虑到这个 float 很大(超过 200
我有一个数组,我想将它保存到 PlayerPrefs。我听说,我可以这样做: PlayerPrefs.SetStringArray('title', anArray); 但由于某些原因它不起作用。也许
我有一个数组,我想将它保存到 PlayerPrefs。我听说,我可以这样做: PlayerPrefs.SetStringArray('title', anArray); 但由于某些原因它不起作用。也许
我正在使用 PlayerPerfabs 来存储玩家数据,例如玩家解锁了哪个级别以及在游戏过程中获得的分数,我希望 PlayerPerfabs 数据在游戏过程中定期更新(例如每 5 秒),所以我创建了一
我在 Android 上遇到 PlayerPrefs 问题。我希望我的教程只显示一次,所以我编写了这段代码: void Awake(){ firstTime = false;
我一直在努力让我的头脑清醒地向我的评分管理器添加一个终生总分。 我希望即使玩家死亡也能累积总分 我试过引入播放器偏好设置,但是这在开始时一直重置为 0。 我的脚本当前有效并使用播放器偏好保存高分; u
我在 Unity 应用程序中使用了一些 PlayerPrefs(平台包括:iOS、Android、Windows)。现在我想发布更新,所以有一个问题:当用户更新应用程序时 - 会保存 PlayerPr
我最近正在创建一个带有教程的游戏。不幸的是,他们没有涵盖保存分数功能。感谢另一位用户,我能够弄清楚我需要使用playerprefs。我在网上看了教程,但没有一个有帮助。如果可以的话请帮帮我! 每秒黄金
我为我的游戏设置了支付系统,这是我的代码: void Start() { T55.interactable = false; Tiger2.interactable = fal
几乎我在 Unity3D 中有一个我正在为 Android 制作的应用程序,您可以收集硬币,这是游戏的货币。每次我开始游戏时,我的硬币数量都会初始化为 0,即使我正在使用 setInt 和 getIn
我将此附加到我的英雄对象上,但它已被销毁。这可能是问题的一部分吗?我想要做的就是保存高分,然后将其显示在我的开始场景中。这是代码: public int highscore; public int s
这个问题在这里已经有了答案: PlayerPrefs not saving on Android (1 个回答) 关闭 5 年前。 求助,PlayerPrefs 似乎不起作用,也不知道为什么。 我有
我是 unity3d 的新手。我通常使用 PlayerPrefs 来存储游戏中的分数、硬币等数据。我正在开发一款游戏,我需要制作可以由服务器端更改的动态数据库。 我可以为它使用 Assets 包吗?任
这可能是一个非常简单的解决方案和问题,但我一直在为此绞尽脑汁。每次我统一测试这个,如果我得到的分数低于高分,高分无论如何都会改变。这是我的代码。如果您需要更多,请告诉我。 脚本 1: using Un
我在创建角色时使用 playerPref,我需要找到 plist 文件。我已经阅读了 playerPref 上的 API 文档。我继续团结,改变了公司和游戏名称,然后我去了 regedit > HKC
我是一名优秀的程序员,十分优秀!