在 3D 中排序点

Sorting points in 3D

如果我有一组 3D 点和一个相机平面,我将如何根据到该平面的距离对它们进行排序?我至少需要伪代码。我想从相机构造一个平面然后对点进行排序。

class CompareDistance
{
    public float DistanceToCameraPlane(Vector3 pointInSpace)
    {
        var cameraPosition = Camera.main.transform.position;
        var cameraForward = Camera.main.transform.forward;
        var deltaToCamera = pointInSpace - cameraPosition;
        var projection = Vector3.Project(deltaToCamera, cameraForward);
        return projection.magnitude;
    }
}