void InitWorldUnitConfig () { // level 0 WorldUnitVo level0Vo = new WorldUnitVo (); level0Vo.level = 0; level0Vo.unit_count_width = 1; level0Vo.unit_count_height = 1; // level 1 WorldUnitVo level1Vo = new WorldUnitVo (); level1Vo.level = 1; level1Vo.unit_count_width = 3; level1Vo.unit_count_height = 3; // level 2 WorldUnitVo level2Vo = new WorldUnitVo (); level2Vo.level = 2; level2Vo.unit_count_width = 15; level2Vo.unit_count_height = 15; // level3 WorldUnitVo level3Vo = new WorldUnitVo (); level3Vo.level = 3; level3Vo.unit_count_width = 30; level3Vo.unit_count_height = 30; worldUnitConfig.Add (level0Vo.level, level0Vo); worldUnitConfig.Add (level1Vo.level, level1Vo); worldUnitConfig.Add (level2Vo.level, level2Vo); worldUnitConfig.Add (level3Vo.level, level3Vo); }
/// <summary> /// 创建的时候,父区块知道是否要创建子区块s /// </summary> public void Create() { if (unitLevel == 0) { RenderUnit(false); } else { // 获得子区块的基础数据 WorldUnitVo childUnitVo = WorldManager.GetInstance().GetChildWorldUnitVoByParentLevel(this.unitLevel); // 计算横向纵向各有多少个子区块 int horChildUnitCount = unit_width_count / childUnitVo.unit_count_width; int verChildUnitCount = unit_height_count / childUnitVo.unit_count_height; float childUnitWidth = childUnitVo.unit_count_width * originWorldUnitSize; float childUnitHeight = childUnitVo.unit_count_height * originWorldUnitSize; float startChildPos_x = realPos_x - (unit_width / 2) + childUnitWidth / 2; float startChildPos_y = realPos_y + (unit_height / 2) - childUnitHeight / 2; // 一行一行地去创建子区块 for (int verIndex = 0; verIndex < verChildUnitCount; ++verIndex) { for (int horIndex = 0; horIndex < horChildUnitCount; ++horIndex) { WorldUnit childUnit = new WorldUnit(); childUnit.unitLevel = childUnitVo.level; childUnit.unit_width_count = childUnitVo.unit_count_width; childUnit.unit_height_count = childUnitVo.unit_count_height; childUnit.realPos_x = startChildPos_x + horIndex * childUnitWidth; childUnit.realPos_y = startChildPos_y - verIndex * childUnitHeight; unExplorUnits.Add(childUnit); childWorldUnits.Add(childUnit); } } // 调用子区块的Create方法 for (int unitIndex = 0; unitIndex < childWorldUnits.Count; ++unitIndex) { childWorldUnits [unitIndex].Create(); } } }
void InitWorldUnitConfig() { // level 0 WorldUnitVo level0Vo = new WorldUnitVo(); level0Vo.level = 0; level0Vo.unit_count_width = 1; level0Vo.unit_count_height = 1; // level 1 WorldUnitVo level1Vo = new WorldUnitVo(); level1Vo.level = 1; level1Vo.unit_count_width = 3; level1Vo.unit_count_height = 3; // level 2 WorldUnitVo level2Vo = new WorldUnitVo(); level2Vo.level = 2; level2Vo.unit_count_width = 15; level2Vo.unit_count_height = 15; // level3 WorldUnitVo level3Vo = new WorldUnitVo(); level3Vo.level = 3; level3Vo.unit_count_width = 30; level3Vo.unit_count_height = 30; worldUnitConfig.Add(level0Vo.level, level0Vo); worldUnitConfig.Add(level1Vo.level, level1Vo); worldUnitConfig.Add(level2Vo.level, level2Vo); worldUnitConfig.Add(level3Vo.level, level3Vo); }