我正在尝试减少此代码的长度

Chr*_*ark -2 c# unity-game-engine

我今天写了一些代码.我无法弄清楚如何减少这段代码的长度,虽然看似重复,但每个部分都不同.

            try {
                totalVerts.Add(verts[i]);
                if (verts[i].x > maxXvert)
                {
                    maxXvert = verts[i].x;
                }
                if (verts[i].x < minXvert)
                {
                    minXvert = verts[i].x;
                }
                if (verts[i].y > maxYvert)
                {
                    maxYvert = verts[i].y;
                }
                if (verts[i].y < minYvert)
                {
                    minYvert = verts[i].y;
                }
                if (verts[i].z > maxZvert)
                {
                    maxZvert = verts[i].z;
                }
                if (verts[i].z < minZvert)
                {
                    minZvert = verts[i].z;
                }
            }
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我将Vector3位置顶点(x,y,z)添加到totalVerts数组中.我也测试每个x,y,z位置是否是所有顶点的最大值或最小值,如果是,我然后将变量maxXvert,maxYvert ...等设置为更高或更低的值.

如果有人能想出减少的方法,那就太好了.谢谢.

Phi*_*ick 6

您可以使用Math.Min和Math.Max.

minXvert = Math.Min(verts[i].x, minXvert);
maxXvert = Math.Max(verts[i].x, maxXvert);
Run Code Online (Sandbox Code Playgroud)

这将使您的代码更简洁和可读,但不会更快.

为了使它更快,您可以将x,y,z值存储在局部变量中,因此只需要查找一次而不是2-4次.但是,无论如何,编译器可能正在为你做这件事. int x = verts[i].x;等等