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));
    }
Beispiel #2
0
    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));
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    public NickNameData GetNickNameDataByIndex(int id)
    {
        NickNameData nickName = dataList.Find(delegate(NickNameData data) { return(data.id == id); });

        return(nickName);
    }