public void FindVertexAboveTerrainLevel() { var yS = UList.FindYAxisCommonValues(m.AllVertexs, H.Ascending); float firstAbove = UList.FindFirstYAbove(yS, m.IniTerr.MathCenter.y + 2f); _mountainBounds = UList.FindVectorsOnSameHeight(m.AllVertexs, firstAbove, 0.07f);//0.07f _mountainBounds = UList.EliminateDuplicatesByDist(_mountainBounds, 1f); //a layer 2 toward the top float lay2 = UList.FindFirstYAbove(yS, m.IniTerr.MathCenter.y + 3f); var layer2 = UList.FindVectorsOnSameHeight(m.AllVertexs, lay2, 0.07f);//0.07f layer2 = UList.EliminateDuplicatesByDist(layer2, 1f); _mountainBounds.AddRange(layer2); //a layer 3 toward the top float lay3 = UList.FindFirstYAbove(yS, m.IniTerr.MathCenter.y + 4f); var layer3 = UList.FindVectorsOnSameHeight(m.AllVertexs, lay3, 0.07f);//0.07f layer3 = UList.EliminateDuplicatesByDist(layer3, 1f); _mountainBounds.AddRange(layer3); DefineMountPath(yS); _mountainBounds.AddRange(_mountainPath); Debug.Log("_mountainBounds count: " + _mountainPath.Count); //bz was used by marine b4 Save(); addMount = true; //RenderMountainBounds(); }