public void CheckSurface(BuildingObj Ting, int SurfaceIndex, Vector3 LTingCenter, Vector3 RTingCenter)
    {
        RoofSurfaceStruct surface  = Ting.roofController.SurfaceList[SurfaceIndex];
        Plane             midPlane = new Plane((LTingCenter - RTingCenter).normalized, (LTingCenter + RTingCenter) / 2); //* 兩亭中間切平面

        //** 依序檢查每一個表面脊 (左、中、右分開做)
        for (int iIndex = 0; iIndex < surface.leftRoofSurfaceTileRidgeList.Count; iIndex++)
        {
            RoofSurfaceRidgeStruct surfaceRidge = surface.leftRoofSurfaceTileRidgeList[iIndex];
            RemoveSurfacePosByPlane(midPlane, surfaceRidge, Ting.roofTopCenter);
        }
        if (surface.midRoofSurfaceTileRidge != null)
        {
            RemoveSurfacePosByPlane(midPlane, surface.midRoofSurfaceTileRidge, Ting.roofTopCenter);
        }
        for (int iIndex = 0; iIndex < surface.rightRoofSurfaceTileRidgeList.Count; iIndex++)
        {
            RoofSurfaceRidgeStruct surfaceRidge = surface.rightRoofSurfaceTileRidgeList[iIndex];
            RemoveSurfacePosByPlane(midPlane, surfaceRidge, Ting.roofTopCenter);
        }
        //**
    }
 /**
  * 刪除超過平面的瓦片位置
  * 輸入: 切割平面、屋面瓦片用脊、同側的基準點
  */
 private void RemoveSurfacePosByPlane(Plane MidPlane, RoofSurfaceRidgeStruct surfaceRidge, Vector3 BasePos)
 {
     //如果和BasePos不同側表示屋面有被平面切割
     if (surfaceRidge.tilePosList.Count > 0 && !MidPlane.SameSide(surfaceRidge.tilePosList[0], BasePos))
     {
         int tileListCount = surfaceRidge.tilePosList.Count;
         for (int iPosIndex = 0; iPosIndex < tileListCount; iPosIndex++)
         {
             //** 若檢查瓦片用脊未到倒數第二個前,檢查方式除了當前瓦片外,還會看下一個瓦片是否也需要刪除,用來讓兩亭交接處不出現鋸齒狀空洞
             if (iPosIndex < tileListCount - 1)
             {
                 if (!MidPlane.SameSide(surfaceRidge.tilePosList[0], BasePos) && !MidPlane.SameSide(surfaceRidge.tilePosList[1], BasePos))
                 {
                     surfaceRidge.tilePosList.RemoveAt(0);
                     surfaceRidge.roundTileModelList[0].transform.parent = null;
                     Destroy(surfaceRidge.roundTileModelList[0].gameObject);
                     surfaceRidge.roundTileModelList.RemoveAt(0);
                 }
                 else
                 {
                     break;
                 }
             }                //只有一個瓦片的時候
             else if (!MidPlane.SameSide(surfaceRidge.tilePosList[0], BasePos))
             {
                 surfaceRidge.tilePosList.RemoveAt(0);
                 surfaceRidge.roundTileModelList[0].transform.parent = null;
                 Destroy(surfaceRidge.roundTileModelList[0].gameObject);
                 surfaceRidge.roundTileModelList.RemoveAt(0);
             }
             else
             {
                 break;
             }
         }
     }
 }