public void RemoveChar(CharData charData)
    {
        charList.Remove(charData);

        LinePack willRemovePack = null;

        foreach (LinePack lp in linePackList)
        {
            if (lp.character == charData)
            {
                willRemovePack = lp;
            }
        }
        if (willRemovePack != null)
        {
            linePackList.Remove(willRemovePack);
            //Debug.Log("移除" + charData.charShowName);
        }
        else if (currentPack.character == charData)
        {
            currentPack = null;
        }


        UpdateCharLineView();
    }
    public CharData Next()
    {
        if (currentPack != null)
        {
            linePackList.Add(currentPack);
        }

        LinePack leastPack = null;
        float    leastLine = 999;

        foreach (LinePack lp in linePackList)
        {
            if (lp.timeLine < leastLine)
            {
                leastLine = lp.timeLine;
                leastPack = lp;
            }
        }
        if (leastPack != null)
        {
            linePackList.Remove(leastPack);
            currentPack = leastPack;

            foreach (LinePack lp in linePackList)
            {
                lp.timeLine -= leastPack.timeLine;
            }
            leastPack.ResetLine();

            UpdateCharLineView(true);
            return(leastPack.character);
        }


        Debug.LogError("CharLineControl must have something wrong!!");
        return(null);
    }