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 }
public PlayerAttributes Get(int playerId) { return(PlayerAttributesData.GetByPlayerId(playerId)); }