默认计划
2397人加入学习
(3人评价)
【唐老狮】Unity数据持久化之PlayerPrefs
价格 ¥ 99.00
承诺服务
该课程属于 Unity3d实战就业路线课程套餐
请加入后再学习

public class Player : MonoBehaviour, IComparable<Player>
{
    string playerName;
    int playerAge;
    int playerAtk;
    int playerDef;
    int playerScole;
    float compeleteTime;
    List<Player> players;
    List<Equipment> equip;
    List<Player> rankingList;

    public int CompareTo(Player other)
    {
        if (this.playerScole >= other.playerScole) return 1;
        else return -1;
    }

    void SavePlayers()
    {
        PlayerPrefs.SetInt("Player's Count", players.Count);
        for (int i = 0; i < players.Count; i++)
        {
            PlayerPrefs.SetString(i + "Player's Name", playerName);
            PlayerPrefs.SetInt(i + "Player's Age", playerAge);
            PlayerPrefs.SetInt(i + "Player's Atk", playerAtk);
            PlayerPrefs.SetInt(i + "Player's Def", playerDef);

            PlayerPrefs.SetInt("Equipment's Count", equip.Count);//存物品数量

            for (int j = 0; j < equip.Count; j++)
            {
                PlayerPrefs.SetInt(i + j + "Equipment's id", equip[j].id);
                PlayerPrefs.SetInt(i + j + "Equipment's Atk", equip[j].atk);
                PlayerPrefs.SetInt(i + j + "Equipment's Def", equip[j].def);
                PlayerPrefs.SetInt(i + j + "Equipment's Weight", equip[j].weight);//分 数字 存
            }
        }

        PlayerPrefs.Save();
    }

    private void LoadPlayers()
    {
        players = new List<Player>();
        int playersNum = PlayerPrefs.GetInt("Player's Count");

        Player player = new Player();

        for (int i = 0; i < playersNum; i++)
        {
            player.playerName = PlayerPrefs.GetString(i + "Player's Name");
            player.playerAge = PlayerPrefs.GetInt(i + "Player's Age");
            player.playerAtk = PlayerPrefs.GetInt(i + "Player's Atk");
            player.playerDef = PlayerPrefs.GetInt(i + "Player's Def");

            equip = new List<Equipment>();
            Equipment equipment = new Equipment();
            int equipmentNum = PlayerPrefs.GetInt("Equipment's Count");
            for (int j = 0; j < equipmentNum; j++)
            {
                equipment = new Equipment();
                equipment.id = PlayerPrefs.GetInt(i + j + "Equipment's id");
                equipment.atk = PlayerPrefs.GetInt(i + j + "Equipment's Atk");
                equipment.def = PlayerPrefs.GetInt(i + j + "Equipment's Def");
                equipment.weight = PlayerPrefs.GetInt(i + j + "Equipment's Weight");//将 数字 解包
                equip.Add(equipment);
            }
            players.Add(player);
        }
    }

    void SaveRankingList()
    {
        PlayerPrefs.SetInt("rankingListNum", rankingList.Count);

        for (int i = 0; i < rankingList.Count; i++)
        {
            PlayerPrefs.SetString(i + "RankingList Name",playerName);
            PlayerPrefs.SetFloat(i + "RankingList Time", compeleteTime);
            PlayerPrefs.SetInt(i + "RankingList Scole", playerScole);
        }

        PlayerPrefs.Save();
    }

    void LoadRankingList()
    {
        rankingList = new List<Player>();
        int rankingListNum = PlayerPrefs.GetInt("rankingListNum");

        Player player= new Player();

        for (int i = 0; i < rankingListNum; i++)
        {
            player.playerName = PlayerPrefs.GetString(i + "RankingList Name");
            player.compeleteTime = PlayerPrefs.GetFloat(i + "RankingList Time");
            player.playerScole = PlayerPrefs.GetInt(i + "RankingList Scole");
            rankingList.Add(player);
        }

        rankingList.Sort();
    }

    void SaveMessage()
    {
        PlayerPrefs.SetString("Player's Name", playerName);
        PlayerPrefs.SetInt("Player's Age", playerAge);
        PlayerPrefs.SetInt("Player's Atk", playerAtk);
        PlayerPrefs.SetInt("Player's Def", playerDef);

        PlayerPrefs.SetInt("Equipment's Count", equip.Count);//存物品数量

        for (int i = 0; i < equip.Count; i++)
        {
            PlayerPrefs.SetInt(i + "Equipment's id", equip[i].id);
            PlayerPrefs.SetInt(i + "Equipment's Atk", equip[i].atk);
            PlayerPrefs.SetInt(i + "Equipment's Def", equip[i].def);
            PlayerPrefs.SetInt(i + "Equipment's Weight", equip[i].weight);//分 数字 存
        }


        PlayerPrefs.Save();
    }

    void LoadMessage()
    {
        playerName = PlayerPrefs.GetString("Player's Name");
        playerAge = PlayerPrefs.GetInt("Player's Age");
        playerAtk = PlayerPrefs.GetInt("Player's Atk");
        playerDef = PlayerPrefs.GetInt("Player's Def");

        int num = PlayerPrefs.GetInt("Equipment's Count");//得到有多少个数据
        equip = new List<Equipment>();//初始化容器

        Equipment equipment;
        for (int i = 0; i < num; i++)
        {
            equipment = new Equipment();
            equipment.id = PlayerPrefs.GetInt(i + "Equipment's id");
            equipment.atk = PlayerPrefs.GetInt(i + "Equipment's Atk");
            equipment.def = PlayerPrefs.GetInt(i + "Equipment's Def");
            equipment.weight = PlayerPrefs.GetInt(i + "Equipment's Weight");//将 数字 解包
            equip.Add(equipment);
        }
    }
}

[展开全文]

PlayerPrefs存储位置

1、PlayerPrefs存储的数据存在哪里

 

2、PalyerPrefs数据唯一性

[展开全文]

PlayerPrefs存储的数据存在哪里?

Windows   

[展开全文]

授课教师

游戏开发前端主程

课程特色

视频(19)
下载资料(13)

学员动态

云上若 加入学习
从明天开始学习 加入学习
Gamemmm 加入学习
hellgoat 加入学习
zhengyuqing 加入学习