public SerializedLocalData()
    {
        heros = new Dictionary <int, SerializedDomain_Hero>();
        SerializedDomain_Hero _defaultHero_0 = new SerializedDomain_Hero(0, 0, 1);

        // _defaultHero_0.ID = 0;
        // _defaultHero_0.weaponsID = new List<int>(2);
        // _defaultHero_0.weaponsID.Add(0);
        // _defaultHero_0.weaponsID.Add(1);
        heros.Add(_defaultHero_0.ID, _defaultHero_0);
        SerializedDomain_Hero _defaultHero_1 = new SerializedDomain_Hero(1, 1, 2);

        // _defaultHero_1.ID = 1;
        // _defaultHero_1.weaponsID = new List<int>(2);
        // _defaultHero_1.weaponsID.Add(1);
        // _defaultHero_1.weaponsID.Add(2);
        heros.Add(_defaultHero_1.ID, _defaultHero_1);
        weapons = new Dictionary <int, SerializedDomain_Weapon>();
        SerializedDomain_Weapon _defaultWeapon = new SerializedDomain_Weapon(0);

        // _defaultWeapon.ID = 0;
        weapons.Add(_defaultWeapon.ID, _defaultWeapon);
        curHero = 0;
        coinNum = 50;
    }
    public void SetData_Weapon(int heroID, int weaponIndex, int weaponID)
    {
        if (weaponIndex >= 2)
        {
            return;
        }
        if (m_JsonData == null || m_PrefData == null)
        {
            return;
        }

        // player prefs
        if (!m_PrefData.heros.ContainsKey(heroID))
        {
            SerializedDomain_Hero newHero = new SerializedDomain_Hero(heroID);
            // newHero.ID = heroID;
            m_PrefData.heros.Add(newHero.ID, newHero);
        }
        if (!m_PrefData.weapons.ContainsKey(weaponID))
        {
            SerializedDomain_Weapon newWeapon = new SerializedDomain_Weapon(weaponID);
            // newWeapon.ID = weaponID;
            m_PrefData.weapons.Add(newWeapon.ID, newWeapon);
        }

        m_PrefData.heros[heroID].weaponsID[weaponIndex] = weaponID;

        // json
        if (!m_JsonData.heros.ContainsKey(heroID))
        {
            SerializedDomain_Hero newHero = new SerializedDomain_Hero(heroID);
            // newHero.ID = heroID;
            m_JsonData.heros.Add(newHero.ID, newHero);
        }
        if (!m_JsonData.weapons.ContainsKey(weaponID))
        {
            SerializedDomain_Weapon newWeapon = new SerializedDomain_Weapon(weaponID);
            // newWeapon.ID = weaponID;
            m_JsonData.weapons.Add(newWeapon.ID, newWeapon);
        }

        m_JsonData.heros[heroID].weaponsID[weaponIndex] = weaponID;
    }