Beispiel #1
0
        /// <summary>
        /// 解析地形Tile数据
        /// </summary>
        /// <param name="iSaveDir">保存目录</param>
        /// <param name="iTileIndex">Tile横向索引(Z轴方向)</param>
        /// <param name="iTerrainObj">拆分用地形对象</param>
        /// <param name="iMaxLayerLevel">地形最大层级</param>
        /// <param name="iLayerIndex">层级索引</param>
        /// <param name="iUpdateProgress">进度更新委托</param>
        public void SplitTerrains(
            string iSaveDir, GameObject iTerrainObj,
            Vector2 iTileIndex, int iMaxLayerLevel, int iLayerIndex,
            ProgressBarUpdate iUpdateProgress = null)
        {
            // 计算当前层级的拆分数量
            var slicingCount = TerrainsSettings.CurSlicingCount(iMaxLayerLevel, iLayerIndex);

            // 计算当前层级Chunk尺寸计算
            for (var r = 0; r < slicingCount; ++r)
            {
                for (var c = 0; c < slicingCount; ++c)
                {
                    // 开始拆分
                    SplitTerrains(
                        iSaveDir, iMaxLayerLevel - iLayerIndex, iTileIndex, slicingCount,
                        iTerrainObj, new Vector2(r, c), iUpdateProgress);
                }
            }
        }