private void Awake() { m_itemDatabase = new Dictionary <CollectibleItem.ItemID, FishStats>(); #if UNITY_EDITOR if (m_databaseSO == null && soAssetName != "") { m_databaseSO = (FishDatabaseSO)AssetDatabase. LoadAssetAtPath(PATH_PREFIX + soAssetName + PATH_SUFFIX, typeof(CollectibleSO)); } #endif }
public void ReadCSV() { LoadSprites(); StreamReader reader = new StreamReader(m_inputFilePath); // Skip first 2 lines. reader.ReadLine(); reader.ReadLine(); CollectibleSO itemSO = (CollectibleSO)ScriptableObject.CreateInstance(typeof(CollectibleSO)); FishDatabaseSO fishSO = (FishDatabaseSO)ScriptableObject.CreateInstance(typeof(FishDatabaseSO)); List <CollectibleItem> items = new List <CollectibleItem>(); List <FishStats> fishStats = new List <FishStats>(); try { while (true) { if (reader.EndOfStream) { break; } string line = reader.ReadLine(); string[] splitLine = line.Split('\t'); var currItem = new CollectibleItem { id = (CollectibleItem.ItemID)ConvertToInt(splitLine[0]), displayName = ConvertToString(splitLine[1]), displayNamePlural = ConvertToString(splitLine[2], ConvertToString(splitLine[1])), description = ConvertToString(splitLine[3]), sprite = ConvertToSprite(splitLine[4]), }; if (splitLine[5] != "") { FishStats fish = new FishStats { id = currItem.id, DecayRate = 1.0f / ConvertToFloat(splitLine[5]), CompletionRate = 1.0f / ConvertToFloat(splitLine[6]), JumpIntervalSec = ConvertToFloat(splitLine[7]), FishLerpRate = 1.0f / ConvertToFloat(splitLine[8]), MinJumpDistance = ConvertToVec2(splitLine[9], splitLine[11], Vector2.zero), MaxJumpDistance = ConvertToVec2(splitLine[10], splitLine[12], Vector2.zero), MinBounds = ConvertToVec2(splitLine[13], splitLine[15], Vector2.zero), MaxBounds = ConvertToVec2(splitLine[14], splitLine[16], Vector2.zero), }; fishStats.Add(fish); } items.Add(currItem); } } finally { itemSO.items = items.ToArray(); fishSO.fishStats = fishStats.ToArray(); reader.Close(); AssetDatabase.CreateAsset(itemSO, m_outputItemFilePath); AssetDatabase.SaveAssets(); AssetDatabase.CreateAsset(fishSO, m_outputFishFilePath); AssetDatabase.SaveAssets(); } }