Exemplo n.º 1
0
    private static void LoadData()
    {
#if !UNITY_EDITOR
        AssetBundle bundle = AssetBundle.LoadFromFile(DataPath);
        VersionData          = bundle.LoadAsset <VersionData>(VERSION_DATA_NAME);
        PlayerAttributesData = bundle.LoadAsset <PlayerAttributesData>(PLAYER_ATTRIBUTES_DATA_NAME);
        InterlocutionData    = JsonConvert.DeserializeObject <Dictionary <string, List <InterlocutionData> > >(bundle.LoadAsset <TextAsset>(INTERLOCUTION_DATA_NAME).text);
        string[] paths = bundle.GetAllAssetNames();
        foreach (string path in paths)
        {
            if (path.Contains(SPLIT_MARK))
            {
                string p          = path.Substring(path.LastIndexOf("/") + 1);
                int    splitIndex = p.IndexOf(SPLIT_MARK);
                string prefix     = p.Substring(0, splitIndex);
                string name       = p.Substring(splitIndex + 1, p.IndexOf(".") - (splitIndex + 1));
                switch (prefix)
                {
                case ITEM_PREFIX: itemDataDictionary[name] = bundle.LoadAsset <ItemAttributesData>(path);
                    break;

                case IB_SPRITE_PREFIX: ibSpriteDataDictionary[name] = bundle.LoadAsset <IBSpriteAttributesData>(path);
                    break;
                }
            }
        }
#else
        string dataPath = "Assets/Hotassets/Data";
        VersionData          = AssetDatabase.LoadAssetAtPath <VersionData>(dataPath + "/" + VERSION_DATA_NAME + ".asset");
        PlayerAttributesData = AssetDatabase.LoadAssetAtPath <PlayerAttributesData>(dataPath + "/" + PLAYER_ATTRIBUTES_DATA_NAME + ".asset");
        InterlocutionData    = JsonConvert.DeserializeObject <Dictionary <string, List <InterlocutionData> > >(AssetDatabase.LoadAssetAtPath <TextAsset>(dataPath + "/" + INTERLOCUTION_DATA_NAME + ".txt").text);
        DirectoryInfo info  = new DirectoryInfo(Application.dataPath + "/Hotassets/Data");
        FileInfo[]    files = info.GetFiles("*.asset", SearchOption.TopDirectoryOnly);
        foreach (var file in files)
        {
            string path = file.Name;
            if (path.Contains(SPLIT_MARK))
            {
                int    splitIndex = path.IndexOf(SPLIT_MARK);
                string prefix     = path.Substring(0, splitIndex);
                string name       = path.Substring(splitIndex + 1, path.IndexOf(".") - (splitIndex + 1));
                switch (prefix)
                {
                case ITEM_PREFIX:
                    itemDataDictionary[name] =
                        AssetDatabase.LoadAssetAtPath <ItemAttributesData>(dataPath + "/" + path);
                    break;

                case IB_SPRITE_PREFIX:
                    ibSpriteDataDictionary[name] =
                        AssetDatabase.LoadAssetAtPath <IBSpriteAttributesData>(dataPath + "/" + path);
                    break;
                }
            }
        }
#endif
    }
Exemplo n.º 2
0
 public PlayerAttributes Get(int playerId)
 {
     return(PlayerAttributesData.GetByPlayerId(playerId));
 }