private Vector3 getEdgeChildPos() { List <Transform> childsOnGround = new List <Transform>(); foreach (Transform child in childCubes.value) { CubeManager mgr = child.GetComponent <CubeManager>(); if (mgr.IsOnGround()) { childsOnGround.Add(child); } } Transform edgeChild = childsOnGround[0]; foreach (Transform child in childsOnGround) { if (cGetter(edgeChild) < cGetter(child)) { edgeChild = child; } } return(edgeChild.localPosition); }