private void SetLiquidHeight()
    {
        float volume = cLGameObject.cl_object.Liquidvolume;
        float height = minheight;

        if (volume == 0)
        {
            liquidheight = height;
            return;
        }
        var hr = this.liquidMesh.HR;

        for (int i = 0; i < hr.Count - 1 && volume != 0; i++)
        {
            //计算出第每层的体积,与实际体积volume比较
            //如果实际体积大,则height=height+该层高度,volume=volume-该层体积
            //否则根据该层的参数 以及volume 计算出真实高度

            //此层高度
            float h = hr[i + 1].x - hr[i].x;
            //此层体积
            float vol = 0.5f * Mathf.PI * (hr[i].y * hr[i].y + hr[i + 1].y * hr[i + 1].y) * h;

            if (volume < vol)
            {
                Vector2        point1 = new Vector2(0, hr[i].y);
                Vector2        point2 = new Vector2(h, hr[i + 1].y);
                LinearFunction linear = new LinearFunction(point1, point2);
                float          k      = linear.GetK();
                float          realh;
                if (k == 0)
                {
                    realh = volume / vol * h;
                }
                else if (k > 0)
                {
                    float th = h - linear.GetX(0);
                    float tv = 1f / 3f * Mathf.PI * hr[i + 1].y * hr[i + 1].y * th;
                    float v1 = tv - vol + volume;
                    float h1 = Mathf.Pow((3f * v1) / (k * k * Mathf.PI), 1f / 3f);
                    realh = h1 + linear.GetX(0);
                }
                else
                {
                    float th = linear.GetX(0);
                    float tv = 1f / 3f * Mathf.PI * hr[i].y * hr[i].y * th;
                    float v1 = tv - volume;
                    float h1 = Mathf.Pow((3f * v1) / (k * k * Mathf.PI), 1f / 3f);
                    realh = th - h1;
                }


                height += realh;
                volume  = 0;
            }
            else
            {
                if (i == hr.Count - 2)
                {
                    height += volume / vol * h;
                    volume  = 0;
                }
                else
                {
                    height += h;
                    volume -= vol;
                }
            }
        }
        liquidheight = height;
    }