public static void Read() { NickNameDataList dataList; bool newFile = false; UnityEngine.Object oldFile = AssetDatabase.LoadAssetAtPath(outputFileName, typeof(EotDataList)); if (oldFile == null) { newFile = true; dataList = ScriptableObject.CreateInstance(typeof(NickNameDataList)) as NickNameDataList; } else { dataList = oldFile as NickNameDataList; } dataList.dataList.Clear(); string jsonStr = File.ReadAllText(fileName); JsonHashtable ht = FCJson.jsonDecode(jsonStr) as JsonHashtable; foreach (System.Object obj in ht.Values) { Hashtable ht2 = obj as Hashtable; NickNameData newData = new NickNameData(); newData.id = (int)ht2["id"]; newData.prefixCh = ht2["prefixCh"] as string; newData.prefixEn = ht2["prefixEn"] as string; newData.suffixCh = ht2["suffixCh"] as string; newData.suffixEn = ht2["suffixEn"] as string; dataList.dataList.Add(newData); } dataList.dataList.Sort(Utils.CompareNickNameFromMinToMax); if (newFile) { AssetDatabase.CreateAsset(dataList, outputFileName); } else { EditorUtility.SetDirty(dataList); } Debug.Log(string.Format("Eot data imported OK. {0} records.", dataList.dataList.Count)); }
public static int CompareNickNameFromMinToMax(NickNameData data1, NickNameData data2) { if (null == data1) { if (null == data2) { return(0); } return(1); } if (null == data2) { return(-1); } return(data1.id.CompareTo(data2.id)); }
public List <NickNameData> GetRandomNickDataListByCount(int randomCount) { List <NickNameData> nickNameList = new List <NickNameData>(); for (int i = 0; i < randomCount; i++) { int index = UnityEngine.Random.Range(1, dataList.Count); NickNameData temp = GetNickNameDataByIndex(index); if (!nickNameList.Contains(temp)) { nickNameList.Add(temp); } else { i--; } } return(nickNameList); }
public NickNameData GetNickNameDataByIndex(int id) { NickNameData nickName = dataList.Find(delegate(NickNameData data) { return(data.id == id); }); return(nickName); }